Taken from a post on theorynet on 23Feb95 and DMANET on 24Feb95
LiDIA
A library for computational number theory
Copyright (c) 1995 by the LiDIA Group - Version 1.0
Universit"at des Saarlandes
Fachbereich 14 - Informatik
Lehrstuhl Prof. Buchmann
Postfach 151150
D - 66041 Saarbr"ucken
CONTENTS
1) ABSTRACT
2) LIDIA GROUP
3) CONTENTS OF THIS RELEASE
4) HOW TO GET AND INSTALL LiDIA
4.1) FTP procedure
4.2) Unpacking procedure
4.3) Installation procedure (short version)
4.4) Calling a test program
4.5) Installation procedure (long version)
5) NOTE
1) ABSTRACT
LiDIA is a C++ library for computational number theory which
provides a collection of highly optimized implementations of
various multiprecision data types and time-intensive algorithms.
LiDIA is developed by the LiDIA Group, at the Universit"at des
Saarlandes. The current version runs on
machine operating system base
-----------------------------------------------
sparc7 SunOS-4.1.2, 4.1.3 32 bit
sparc8 SunOS-4.1.3 32 bit
i386/i486 Linux-1.1.89, OS/2(*) 32 bit
Mips R4000 IRIX-5.2 32 bit
RS6000 AIX 32 bit
HP9000/7xx HP-UX9.05 32 bit
DEC alpha DEC OSF/1 64 bit
Macintosh (**) 32 bit
(*) Special OS/2 makefiles can be send on demand.
(**) At the moment there is no automatic way to build LiDIA on
the Mac. We have built LiDIA manually using the CodeWarrior
C/C++ compiler, version 4.5.
LiDIA can be compiled with both AT&T's cfront-3.0.1 and g++-2.4.5,
g++-2.5.8 and g++-2.6.x compilers.
For a more detailed description of LiDIA's design and features we
refer to the manual.
2) LiDIA GROUP
At the moment the LiDIA-Group consists of the following people:
Werner Backes Oliver Morsch
Franz-Dieter Berger Andreas M"uller
Ingrid Biehl Volker M"uller
Johannes Buchmann Stefan Neis
Sascha Demetrio Thomas Papanikolaou
Thomas Denny Victor Shoup
Kurt Huwig Patrick Theobald
Thorsten Lauer Oliver van Sprang
Frank Lehmann Damian Weber
Christian Martini Ren'e Weiskircher
Markus Maurer Susanne Wetzel
3) CONTENTS OF THIS RELEASE
The current version of LiDIA (1.0a) contains the following multi-
precision data types:
bigint integer arithmetic
bigmod modular integer arithmetic
bigrational rational arithmetic
bigfloat real arithmetic (including Pi, E,
exp, log, sqrt, sin, cos, ...
bigcomplex complex arithmetic
Based on these types the following more elaborate classes are im-
plemented:
bigint_matrix linear algebra over the integers
lattice_basis lattice reduction algorithms (va-
riants of the LLL algorithm for
doubles, bigints and bigfloats).
lattice_gensys algorithms for finding lattices
from generating systems
rational_factorization arithmetic with factorizations of
integers (Trial Division, ECM).
4) HOW TO GET AND INSTALL LiDIA
4.1) FTP procedure
LiDIA is available by anonymous ftp from
crypt1.cs.uni-sb.de:pub/systems/LiDIA
Here is a sample ftp session. With > we denote the commands you
have to type in. After // we give a short explanation.
> ftp crypt1.cs.uni-sb.de // connect to the ftp server
> anonymous // your login name
> [complete email address] // your password is your email
// address.
> cd pub/systems/LiDIA // the directory where LiDIA
// resides
> binary // set binary mode for data
// transfer
> get COPYRIGHT // get the COPYRIGHT file
> get LiDIA.tgz // get the package
> bye // disconnect
This session will get the files COPYRIGHT and LiDIA.tgz and will
place them in the current directory (from now on called
UNPACKDIR).
4.2) Unpacking procedure
Now typing in
gunzip -c LiDIA.tgz | tar xvf -
will create a directory named LiDIA; in this directory the
following files/directories should exist:
UNPACKDIR/LiDIA:
Readme bugs/ doc/ lib/ src/
bin/ config/ include/ makefile*
4.3) Installation procedure (short version)
In the UNPACKDIR/LiDIA directory type
STEP 1. make configure
and answer the questions of the `configure' script. You will
be asked for the installation path of LiDIA (this is by default
the current directory). Please enter a path on which you have
write permission, since this is neccessary by the `make install'
command below. Then type
STEP 2. make
to build the library and (optionally)
STEP 2a. make appl
to create the applications which test the classes and demonstrate
their use. Finally, if and only if you have not chosen the
default installation path, type
STEP 3. make install
to install the library of LiDIA (libLiDIA.a) and the include
files on your system. If you want to change the installation path
please rerun STEP 1 before calling `make install'. LiDIA's
library is installed by default on
UNPACKDIR/LiDIA/lib/$ARCH/libLiDIA.a
where ARCH is determined by the command `uname -m'. LiDIA's
include files are installed by default on
UNPACKDIR/LiDIA/include
and finally LiDIA's binaries are installed on
UNPACKDIR/LiDIA/bin/$ARCH
4.3) Calling a test program
To call a test program, change to to the directory
UNPACKDIR/LiDIA/bin/$ARCH
by simply typing
cd UNPACKDIR/LiDIA/bin/$ARCH
The applications in this directory, try to test all functions of
the LiDIA classes. They are succesful, if they do not print an
error message.
4.4) Installation procedure (long version)
Please read the chapter `Installing' in the manual
UNPACKDIR/LiDIA/doc/manual/lidiaman.ps
5) NOTE
After having installed LiDIA, please send us an email saying
that you have done so. This enables us to inform you about bugs,
bug fixes, new version, etc.
We would also appreciate all sorts of feedback, bug reports and
bug fixes, enhancements etc. If you successfully installed LiDIA
please tell us so. If you had no success at all and this is
likely to be a bug in LiDIA, (including incomplete/incorrect do-
cumentation), please report. Note that we will probably not be
able to reconstruct a bug without a detailed description. The
format suggested in the file `bug_reports.form' in the LiDIA/bugs
directory should be the guide for all bug reports. Approved
bugs will be included in the file `bugs' which also resides in
the LiDIA/bugs directory. You can send your suggestions, enhance-
ments, etc to
lidia@cs.uni-sb.de
Please, send bug reports (and fixes) to
lidia-bugs@cs.uni-sb.de
We will probably also set up a mailing list.
Ingrid Biehl
Johannes Buchmann
Thomas Papanikolaou (TP)