next up previous contents
Next: Future developments Up: Overview Previous: LiDIA -Group

Structure of LiDIA

The LiDIA library has 5 levels.

The lowest level contains the C-kernel  , which contains a multiprecision  integer arithmetic and - in the next release - a memory manager  . Both programs are written in C  to attain maximum speed. Actually, it is possible to use various multiprecision integer packages in the kernel of LiDIA . Currently, we recommend to use the multiprecision integer package libI [12] in the LiDIA kernel. But since the functions of the C-kernel are never called directly by any application program of LiDIA but only through the interface on the second level, it is also possible to use any multiprecision integer package which supports the whole functionality of the interface. For example, Arjen Lenstra's lip  package [27] (available by anonymous ftp via flash.bellcore.com:/pub/lenstra) and the GNU's gmp  arithmetic [18] (available by anonymous ftp via prep.ai.mit.edu) have been also successfully tested. A description of the multiprecision integer packages and their integration in LiDIA is found in [12] or in [27].

The second LiDIA level is the interface through which C++ applications on higher levels have access to the C-kernel. By that interface declarations, operators, functions and procedures dealing with multiprecision integers and memory management are standardized. LiDIA applications always use those standards. They never call the underlying C-kernel directly. The interface for the multiprecision integer arithmetic is realised by the class bigint. A general memory manager gmm is planned for the next release as interface for the memory manager in the C-kernel.

The third level of LiDIA contains all non parameterized LiDIA applications, the so-called simple classes  . For example, on the third level there is a class bigrational which implements arithmetic of rational numbers.

On the fourth LiDIA level there are the parameterized classes 

(also called container classes  ). These classes are designed to solve computational problems which are very similar in many concrete applications. In Version 1.1 no parameterized classes are included.

On the fifth LiDIA level there will be two user interfaces in the next major release, an online documentation tool and the interpreter lc   which makes the LiDIA functions available for interactive use.

 

Fig.: The levels of LiDIA


next up previous contents
Next: Future developments Up: Overview Previous: LiDIA -Group



LiDIA Administrator
Thu Aug 10 16:41:08 MET DST 1995