Information on LiDIA

The LiDIA Web Site at Darmstadt

Copies of announcements:


Announcement in April, 1996

Apparently-To: <NmbrThry@vm1.nodak.edu>
Approved-By:  Victor Miller <victor@CCR-P.IDA.ORG>
Message-ID:  <199604151556.RAA18833@voyager.cs.uni-sb.de>
Date:         Mon, 15 Apr 1996 13:59:36 EDT
Reply-To: "LiDIA (Thomas P.)" <lidiaadm@cs.uni-sb.de>
Sender: Number Theory List <NMBRTHRY@vm1.nodak.edu>
From: "LiDIA (Thomas P.)" <lidiaadm@cs.uni-sb.de>
Subject:      Announcement - LiDIA 1.2.1
To: Multiple recipients of list NMBRTHRY <NMBRTHRY@vm1.nodak.edu>

                         ANNOUNCEMENT

                            LiDIA

           A library for computational number theory

  Copyright (c) 1994, 1995, 1996 by the LiDIA Group - Version 1.2

                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
   3.1 What is new?
   3.2 What is in work?
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
   4.1) Send an email
   4.2) Be a part of it
6) LiDIA GOES TO DARMSTADT
7) ACKNOWLEDGEMENTS




1) ABSTRACT
@@@@@@@@@@@

LiDIA is a *powerful 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  and  it  is *free* for educational
purposes. The current version runs on

o alpha, sparc7, sparc8, mips, intel(paragon), hp, cray c90, rs6k

with the following compilers

o g++-2.6.x, g++-2.7.x, cfront-3.01, HP C++, MIPS C++, xlC, Sun's
  acc, Watcom v.10, Borland-4.x

on the following operating systems

o SunOS, Solaris, OSF/1, OS/2, AIX-3.2.5, IRIX-5.2, Linux, FreeBSD,
  HP-UX9.05, MacOS (*), Windows 95 (**)

supporting the object file formats

o a.out, ELF


(*) 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 7.  The corresponding project files
    will be released soon.

(**) with some modifications (contact lidia@cs.uni-sb.de for more
     information).

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         F-D Berger         Ingrid Biehl
Johannes Buchmann     John Cremona       Sascha Demetrio
Thomas Denny          Kurt Huwig         Thorsten Lauer
Frank Lehmann         Markus Maurer      Oliver Morsch
Andreas M"uller       Volker M"uller     Stefan Neis
Thomas Papanikolaou   Sachar Paulus      Nigel Smart
Victor Shoup          Thomas Sosnowski   Patrick Theobald
Damian Weber          Susanne Wetzel

Old Members
^^^^^^^^^^^
Oliver van Sprang     Ren'e Weiskircher



3) CONTENTS OF THIS RELEASE
@@@@@@@@@@@@@@@@@@@@@@@@@@@

3.1) What is new?
^^^^^^^^^^^^^^^^^

The current  version of LiDIA (1.2) is a major  release. It follows
the  beta-tested  version 1.2.0b released on 26th of February  1996
by  registered  LiDIA users. Most of the work was done in extending
the package and in improving stability and performance.

o the  factorization  class  now  includes an implementation of the
  self-initializing version of the multipolynomial quadratic sieve.
  With  this method LiDIA is now able to factor integers of size 75
  digits  (max).  For  example, a 50-digit number with two 25-digit
  prime factors is now factored in 16 minutes on a sparc20.

o new  template  vectors  and matrices have been included, unifying
  matrices and lattices.

o new template implementation of Laurent power series and univariate
  polynomials.

o a  memory  manager  is now included providing 4 modi which can be
  chosen  at  compile time: malloc (using the system's memory mana-
  ger malloc/free), dentzer (using a buddy-algorithm combined with
  free-list storage), boehm (Boehm's garbage collector) and default
  (no memory manager at all).


3.2) What is in work?
^^^^^^^^^^^^^^^^^^^^^

o In beta testing

  - Finite fields GF(2^n), GF(2^p)
  - Generic multivariate rational function arithmetic
  - Gr"obner bases
  - Factoring in F_p[x] (Shoup's algorithms)

  (pre-releases of these packages available on request)

o In work

  - Porting of John Cremona's elliptic curve package
  - Discrete logarithms using COS
  - Symbolic computation package
  - Invariants of number fields
  - Counting points on elliptic curves over |F_p, p > 3
  - Incoprorating PoSSo's Customizable Memory Manager into LiDIA
  - LiDIA development environment (support for configuring, (remote)
    control version, editing, compiling, running and debugging of
    LiDIA programs)


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
             ftp.cs.uni-sb.de:/pub/LiDIA
             unix.hensa.ac.uk:/mirrors/LiDIA

If you have ncftp you can get LiDIA by simply typing

     ncftp crypt1.cs.uni-sb.de:/pub/systems/LiDIA/LiDIA.tgz

else use the following ftp session. With > we denote the commands
you have to type in. // denotes 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.  PLEASE  give  the
                                   // correct email address.
> cd pub/systems/LiDIA             // the  directory  where LiDIA
                                   // resides
> binary                           // set  binary  mode  for data
                                   // transfer
> get README                       // get   the    README    file
> get COPYRIGHT                    // get   the    COPYRIGHT file
> get LiDIA.tgz                    // get      the        package
> bye                              // disconnect

This session  will  get the files README, 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/      makefile.os2
bin/       config/         include/       makefile          src/

Readme ............................................... this file
bin ........... holds LiDIA's applications files (see make appl)
lib .................. holds LiDIA's library and thr primes file
config ...................... contains the configuration scripts
doc .......... contains LiDIA's documentation in various formats
include ............................ holds LiDIA's include files
makefile ............................. for UNIX, Linux, AIX, ...
makefile.os2 ..................................... for OS/2 only
src ............................................ LiDIA's sources


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
/usr/local).  Please  enter  an  existing  path on which you have
write  permission, since this is neccessary by the `make install'
command below. If your machine produces objects in the ELF format
you should also edit the file

                LiDIA/config/CONFIG

and replace the line

                ASFLAGS = -DUMMY

with
                ASFLAGS = -DHAVE_ELF

Solaris  users  should  also  define  -DSOLARIS after the default
CFLAGS and CXXFLAGS (if this is not already guessed by the confi-
gure script). After this 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
current path as 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

                /usr/local/lib/LiDIA/$host-cpu/$cpp/libLiDIA.a

where host-cpu is  determined  by  the  command `config.guess' of
the  GNU  software and $cpp is the C++ compiler used (in this way
you  are  allowed  to  create  multiple  libraries   produced  by
different  compilers  on the same machine). LiDIA's include files
are installed by default on

                /usr/local/include/LiDIA

and finally LiDIA's binaries are installed on

                /usr/local/bin/LiDIA/$host-cpu/$cpp



4.3) Calling a test program
^^^^^^^^^^^^^^^^^^^^^^^^^^^
To call a test program, change to the directory

                UNPACKDIR/LiDIA/bin/$host-cpu/$cpp

by simply typing

                cd UNPACKDIR/LiDIA/bin/$host-cpu/$cpp

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
@@@@@@@

5.1) Send an email
^^^^^^^^^^^^^^^^^^
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.

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 documentation), 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, enhancements, etc to

                     lidia@cs.uni-sb.de

Please, send bug reports (and fixes) to

                   lidia-bugs@cs.uni-sb.de


5.2) Be a part of it
^^^^^^^^^^^^^^^^^^^^
We would also appreciate all sorts of feedback,  bug reports  and
bug  fixes,  enhancements,  contributions  etc. At this point one
short  note  (answering  the  question  posed frequently by LiDIA
users):

For  programs  contributed  to LiDIA the copyright remains to the
author.  However,  once a program is contributed to LiDIA and  is
released  for  the public with LiDIA it is not possible to remove
it from the package, since users may have built their work on top
of it.  LiDIA's policy is to put the author's name in the manual,
the  source code and in the announcement of the corresponding re-
lease.  For  more  details, please read the file COPYRIGHT in the
main distribution directory.




6) LiDIA GOES TO DARMSTADT
@@@@@@@@@@@@@@@@@@@@@@@@@@

The LiDIA Group will move to Darmstadt (about 40km from Frankfurt)
by  the  end of the year, following Prof. J. Buchmann.  Until  the
movement  is completed, the user support (a team of 6 programmers)
will remain in  Saarbr"ucken.

We will inform you more precisely on this in about one month.


7) ACKNOWLEDGEMENTS
@@@@@@@@@@@@@@@@@@@

I would like to thank in the name of the LiDIA Group all users who
have  up-loaded,  installed and beta-tested LiDIA in this short a-
mount of time.

LiDIA  profits  from  user contributions and various public domain
software packages:  special  thanks  to  Arjen  Lenstra  and  Paul
Leyland  for  freelip-1.0,  Ralf  Dentzer   for   libI and the GNU
project for their superb software. LiDIA's development environment
uses GNU tools extensively.

Thanks  also to Hans-J. Boehm and Alan J. Demers for the gc memory
manager.

Last  but  not  least,  I  would  like  to thank my colleagues John
Cremona (Exeter University)  and Nigel P. Smart (University of Kent
at Canterbury) for many useful comments and discussions.

Best to all of you,

        Thomas Papanikolaou (TP) (papanik@cs.uni-sb.de)

-------------------------------------------------------------------
To remove yourself from this mailing list,  send a message with the
subject  of   "unsubscribe"  to    lidia@cs.uni-sb.de.   To  obtain
additional information regarding this list and its archives, send a
message with the subject of "help" to lidiaadm@cs.uni-sb.de.

Announcement in February, 1995

Apparently-To: <NmbrThry@vm1.nodak.edu>
Approved-By:  Victor Miller <victor@CCR-P.IDA.ORG>
Message-ID:  <9502231107.AA12659@crypt10.cs.uni-sb.de.cs.uni-sb.de>
Newsgroups:   bit.listserv.nmbrthry
Date:         Thu, 23 Feb 1995 09:36:46 EST
Reply-To: Thomas Papanikolaou <papanik@cs.uni-sb.de>
Sender: Number Theory List <NMBRTHRY%NDSUVM1.bitnet@UACSC2.ALBANY.EDU>
From: Thomas Papanikolaou <papanik@cs.uni-sb.de>
Subject:      LiDIA Announcement
To: Multiple recipients of list NMBRTHRY
	<NMBRTHRY%NDSUVM1.bitnet@UACSC2.ALBANY.EDU>

Dear Colleagues,

we are happy to announce the first version of



                            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)