GAP (linboxing) - Chapter 4: Implementation

Goto Chapter: Top 1 2 3 4 Ind
Top of Book Previous Chapter Next Chapter

4 Implementation

### 4 Implementation

The linboxing package consists three parts. The first part is written in GAP, and this consists of test routines and wrappers for functions in the linboxing kernel module. The second part is the kernel module's interface to GAP, which is written in C. This handles the interface between GAP and the third part, which is the C++ code which calls functions in the LinBox library.

In the C++ part of the kernel module, the GAP objects such as vectors, matrices and their elements are converted into the corresponding LinBox data types. The requested LinBox function is then called, and the result converted back onto GAP objects.

Currently, all GAP matrices are converted into dense matrices in the LinBox library. LinBox provides good support for sparse matrices, but at present there is no standard way in GAP to represent sparse matrices. There are plans to overhaul matrix objects in GAP, and once sparse matrix objects are provided in GAP, these should be converted into LinBox sparse matrices.

For more details of the implementation, please refer to the source code documentation. The C and C++ source code can be found in the `src` directory of the linboxing package, and contains comments which can be converted into HTML documentation using `doxygen` (which must therefore be available on your system). Create this documentation using the following command:

        cd src
        doxygen Doxyfile

Point your web browser at `src/html/index.html` to browse the documentation.

Top of Book Previous Chapter Next Chapter
Goto Chapter: Top 1 2 3 4 Ind

generated by GAPDoc2HTML