[comp.archives] [crypt...] Large Integer Arithmetic Packages

riordanmr@clvax1.cl.msu.edu (Mark Riordan) (04/18/91)

Archive-name: math/bignum/msu-bignum-archive/1991-04-17
Archive-directory: cl-next1.cl.msu.edu:/math/ [35.8.4.21]
Original-posting-by: riordanmr@clvax1.cl.msu.edu (Mark Riordan)
Original-subject: Large Integer Arithmetic Packages
Reposted-by: emv@msen.com (Edward Vielmetti, MSEN)

In response to recent Email requests, I have assembled this list of
large-integer packages of which I have heard.

For your convenience, I have placed compressed tar files of
most of these on cl-next1.cl.msu.edu (35.8.4.21).  They are
available for anonymous FTP in the directory "math".  
However, what I have may not be the most current version in all cases.

Here they are, in no particular order:

mp
	Multiple Precision package that comes with some Unixes
	
	Multiple precision package accessed via -lmp flag on your
	compiler.  Provides +, -, *, /, gcd, exponentiation,
	sqrt.  Comes with SunOS, NeXT Mach, BBN Mach 1000, 
	and probably a few others.  See "man mp".  
	Object code only, of course.

PARI
	Henri Cohen, et al., Universite Bordeaux I, Paris, FRANCE
	
	Multiple precision desk calculator and library routines.
	Contains optimized assembly code for Motorola 68020, 
	semi-optimized code for SPARC, and apparently rather slow
	generic C version.  Does both integers and reals.
	Does vectors and matrices as well as scalars.
	Contains a number of advanced functions, some of which I've
	never heard of.  ("Weber's function"?)
	Has a factorization function, primality test, & other related stuff.
	Plenty of TEX documentation.
	Public domain, but you can't distribute modified versions.
	Filename:  pari-1.32.1.tar.Z
	
Arithmetic in Global Fields  (Arith)
	Kevin R. Coombes, David R. Grant
	
	Package of routines for arbitrary precision integers or
	polynomials over finite fields.  Includes basic +, -, *, /
	and a few others like gcd.  Source code in C.
	Distributed under the terms of the GNU public license.
	Includes man pages and TEX documentation.
	Filename:  arith.tar.Z

Arbitrary Precision Math Library
	Llyod Zusman   Los Gatos, CA
	
	C package which supports basic +, -, *, /.  Provides for radix
	points (i.e., non-integers).  Not as polished as the others here.
	Posted to comp.sources.misc in October 1988.
	Filename:  ampl.tar.Z
	
BigNum
	J. Vuillemin, INRIA, FRANCE, and others.
	Distributed by Digital Equipment Paris Research Lab (DECPRL)
	
	A "portable and efficient arbitrary-precision integer" package.
	C code, with generic C "kernel", plus assembly "kernels" for
	MC680x0, Intel i960, MIPS, NS32032, Pyramid, and of course VAX.
	This is probably one of the better-known packages of this type.
	Implements +, -, *, /, mod, plus logical operations OR, AND, XOR.
	Both signed and unsigned arithmetic available.
	Available via email from librarian@decprl.dec.com.
	You will receive 5 shell archives.  Give your postal address
	and you will also receive printed documentation from France.
	Package includes TEX documentation.
	Publicly available for non-commercial use.
	Filename:  bignum.tar.Z

Lenstra's package
	Arjen Lenstra   Bellcore
	
	Portable unsigned integer package written entirely in C.
	Includes +, -, *, /, exponentiation, mod, primality testing,
	sqrt, random number generator, and a few others.  The package
	was uncommented and undocumented; I have tried to add enough
	comments to get by.  This is the only of these packages that I
	have actually used.  It works well and is very portable.  
	I haven't done any benchmarks against the others, but the code 
	looks clever & Lenstra is an accomplished number theorist.
	Unlike the other packages here, this one requires you to allocate
	storage statically--only a problem if your numbers are really huge.
	Arjen has placed the code in the public domain.  
	Filename:  lenstra.tar.Z
	
SPX
	Kannan Alagappan & Joseph Tardo, DEC
	
	This is a huge prototype public key authentication system
	based on RSA.  I mention it here because those who have heard
	of SPX have probably correctly guessed that it contains a large
	integer package and I want to inform you that the large integer
	package it contains is indeed DEC's BigNum from France.
	You can get a beta test copy of SPX from crl.dec.com (192.58.206.2). 
	Use it only for testing, as it "may" expire on a certain date.
	
Mark Riordan   riordanmr@clvax1.cl.msu.edu
Michigan State University   17 April 1991

-- comp.archives file verification
cl-next1.cl.msu.edu
total 718
-rw-r--r--  1 ftp      other       4287 Apr 17 22:24 BIGNUMS.TXT
-rw-r--r--  1 ftp      other      74733 Apr 17 22:07 apml.tar.Z
-rw-r--r--  1 ftp      other      72153 Apr 17 21:41 arith.tar.Z
-rw-r--r--  1 ftp      other     146131 Apr 17 21:44 bignum.tar.Z
-rw-r--r--  1 ftp      other      25345 Apr 17 22:05 lenstra.tar.Z
-rw-r--r--  1 ftp      other     389604 Apr 17 21:41 pari-1.32.1.tar.Z
found msu-bignum-archive ok
cl-next1.cl.msu.edu:/math/