Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 91213ddcfbe7f54821d42c2d9e091326 > files > 1814

gap-system-packages-4.4.12-5mdv2010.0.i586.rpm

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>GAP (linboxing) - Chapter 4: Implementation</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="generator" content="GAPDoc2HTML" />
<link rel="stylesheet" type="text/css" href="manual.css" />
</head>
<body>


<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a href="chap2.html">2</a>  <a href="chap3.html">3</a>  <a href="chap4.html">4</a>  <a href="chapInd.html">Ind</a>  </div>

<div class="chlinkprevnexttop">&nbsp;<a href="chap0.html">Top of Book</a>&nbsp;  &nbsp;<a href="chap3.html">Previous Chapter</a>&nbsp;  &nbsp;<a href="chapInd.html">Next Chapter</a>&nbsp;  </div>

<p><a id="X78289A737AF28B39" name="X78289A737AF28B39"></a></p>
<div class="ChapSects"><a href="chap4.html#X78289A737AF28B39">4 <span class="Heading">Implementation</span></a>
</div>

<h3>4 <span class="Heading">Implementation</span></h3>

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

<p>In the C++ part of the kernel module, the <strong class="pkg">GAP</strong> 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 <strong class="pkg">GAP</strong> objects.</p>

<p>Currently, all <strong class="pkg">GAP</strong> 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 <strong class="pkg">GAP</strong> to represent sparse matrices. There are plans to overhaul matrix objects in <strong class="pkg">GAP</strong>, and once sparse matrix objects are provided in <strong class="pkg">GAP</strong>, these should be converted into LinBox sparse matrices.</p>

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


<table class="example">
<tr><td><pre>
    cd src
    doxygen Doxyfile
  </pre></td></tr></table>

<p>Point your web browser at <code class="file">src/html/index.html</code> to browse the documentation.</p>


<div class="chlinkprevnextbot">&nbsp;<a href="chap0.html">Top of Book</a>&nbsp;  &nbsp;<a href="chap3.html">Previous Chapter</a>&nbsp;  &nbsp;<a href="chapInd.html">Next Chapter</a>&nbsp;  </div>


<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a>  <a href="chap1.html">1</a>  <a href="chap2.html">2</a>  <a href="chap3.html">3</a>  <a href="chap4.html">4</a>  <a href="chapInd.html">Ind</a>  </div>

<hr />
<p class="foot">generated by <a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>