Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/matricesforhomalg/doc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 7.8.2025 mit Größe 11 kB image not shown  

Quelle  chap1_mj.html   Sprache: HTML

 
 products/Sources/formale Sprachen/GAP/pkg/matricesforhomalg/doc/chap1_mj.html


<?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>
<script type="text/javascript"
  src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (MatricesForHomalg) - Chapter 1: Introduction</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" />
<script src="manual.js" type="text/javascript"></script>
<script type="text/javascript">overwriteStyle();</script>
</head>
<body class="chap1"  onload="jscontent()">


<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chap6_mj.html">6</a>  <a href="chapA_mj.html">A</a>  <a href="chapB_mj.html">B</a>  <a href="chapC_mj.html">C</a>  <a href="chapD_mj.html">D</a>  <a href="chapE_mj.html">E</a>  <a href="chapF_mj.html">F</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>

<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap0_mj.html">[Previous Chapter]</a>    <a href="chap2_mj.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap1.html">[MathJax off]</a></p>
<p><a id="X7DFB63A97E67C0A1" name="X7DFB63A97E67C0A1"></a></p>
<div class="ChapSects"><a href="chap1_mj.html#X7DFB63A97E67C0A1">1 <span class="Heading">Introduction</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap1_mj.html#X878AE2517B963434">1.1 <span class="Heading">What is the role of the <strong class="pkg">MatricesForHomalg</strong> package in the <strong class="pkg">homalg</strong> project?</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap1_mj.html#X81B1923E82145E72">1.1-1 <span class="Heading"><strong class="pkg">MatricesForHomalg</strong> provides ...</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap1_mj.html#X856DCAA4846FBB00">1.1-2 <span class="Heading"><strong class="pkg">homalg</strong> delegates ...</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap1_mj.html#X808E7BA97C5EA311">1.1-3 <span class="Heading">The black box concept</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap1_mj.html#X78DD800B83ABC621">1.2 <span class="Heading">This manual</span></a>
</span>
</div>
</div>

<h3>1 <span class="Heading">Introduction</span></h3>

<p><a id="X878AE2517B963434" name="X878AE2517B963434"></a></p>

<h4>1.1 <span class="Heading">What is the role of the <strong class="pkg">MatricesForHomalg</strong> package in the <strong class="pkg">homalg</strong> project?</span></h4>

<p><a id="X81B1923E82145E72" name="X81B1923E82145E72"></a></p>

<h5>1.1-1 <span class="Heading"><strong class="pkg">MatricesForHomalg</strong> provides ...</span></h5>

<p>The package <strong class="pkg">MatricesForHomalg</strong> provides:</p>


<ul>
<li><p>rings</p>

</li>
<li><p>ring elements</p>

</li>
<li><p>ring maps</p>

</li>
<li><p>matrices</p>

</li>
</ul>
<p><a id="X856DCAA4846FBB00" name="X856DCAA4846FBB00"></a></p>

<h5>1.1-2 <span class="Heading"><strong class="pkg">homalg</strong> delegates ...</span></h5>

<p>The package <strong class="pkg">homalg</strong> <em>delegates</em> <em>all</em> matrix operations as it treats matrices and their rings as <em>black boxes</em>. <strong class="pkg">homalg</strong> comes with a single predefined class of rings and a single predefined class of matrices over these rings -- the so-called internal matrices (--> <a href="chap5_mj.html#X7FE94FC47F460E35"><span class="RefLink">5.1-2</span></a>) over so-called internal rings (--> <a href="chap3_mj.html#X8097E89E7B6EF731"><span class="RefLink">3.1-4</span></a>). An internal matrix (resp. ring) is simply a wrapper containing a <strong class="pkg">GAP</strong>-builtin matrix (resp. ring). <strong class="pkg">homalg</strong> allows other packages to define further classes or extend existing classes of rings and matrices <em>together</em> with their operations. For example:</p>


<ul>
<li><p>The <strong class="pkg">homalg</strong> subpackage <strong class="pkg">ResidueClassRingForHomalg</strong> (--> Appendix <a href="chapD_mj.html#X7F3BA9AE7A0D245D"><span class="RefLink">D</span></a>) defines the classes of residue class rings, residue class ring elements, and matrices over residue class rings. Such a matrix is defined by a matrix over the ambient ring which is nevertheless interpreted modulo the ring relations, i.e. modulo the generators of the defining ideal.</p>

</li>
<li><p>The package <strong class="pkg">GaussForHomalg</strong> extends the class of internal matrices enabling it to wrap sparse matrices provided by the package <strong class="pkg">Gauss</strong>. <strong class="pkg">GaussForHomalg</strong> delegates the essential part of the matrix creation and all matrix operations to <strong class="pkg">Gauss</strong>.</p>

</li>
<li><p>The package <strong class="pkg">HomalgToCAS</strong> defines the classes of so-called external rings and matrices and the package <strong class="pkg">RingsForHomalg</strong> delegates the essential part of the matrix creation and all matrix operations to external computer algebra systems like <strong class="pkg">Singular</strong>, <strong class="pkg">Macaulay2</strong>, <strong class="pkg">Sage</strong>, <strong class="pkg">Macaulay2</strong>, <strong class="pkg">MAGMA</strong>, <strong class="pkg">Maple</strong>, ... . The package <strong class="pkg">homalg</strong> accesses external matrices via pointers. The pointer of an external matrix is simply its name in the external system. <strong class="pkg">HomalgToCAS</strong> chooses these names.</p>

</li>
<li><p>The package <strong class="pkg">LocalizeRingForHomalg</strong> defines the classes of local(ized) rings, local ring elements, and local matrices. A <strong class="pkg">homalg</strong> local matrix contains a <strong class="pkg">homalg</strong> matrix as a numerator and an element of the global ring as a denominator.</p>

</li>
</ul>
<p>The matrix operations are divided into two classes called <q>Tools</q> and <q>Basic</q>. The <q>Tools</q> operations include addition, subtraction, multiplication, extracting certain rows or columns, stacking, and augmenting matrices (--> Appendix <a href="chapB_mj.html#X7B2993CB7B012115"><span class="RefLink">B</span></a>). The <q>Basic</q> operations include the two basic operations in linear algebra needed to solve an inhomogeneous linear system <span class="SimpleMath">\(XA=B\)</span> with coefficients in a not necessarily commutative ring <span class="SimpleMath">\(R\)</span> (--> Appendix <a href="chapA_mj.html#X7CB422647C7DD289"><span class="RefLink">A</span></a>):</p>


<ul>
<li><p>Effectively reducing <span class="SimpleMath">\(B\)</span> modulo <span class="SimpleMath">\(A\)</span>, i.e. effectively deciding if a row (or a set of rows) <span class="SimpleMath">\(B\)</span> lies in the <span class="SimpleMath">\(R\)</span>-span of the rows of the matrix <span class="SimpleMath">\(A\)</span>.</p>

</li>
<li><p>Computing an <span class="SimpleMath">\(R\)</span>-generating set of row syzygies (=<span class="SimpleMath">\(R\)</span>-relations among the rows) of <span class="SimpleMath">\(A\)</span>, i.e. computing an <span class="SimpleMath">\(R\)</span>-generating set of the left kernel of <span class="SimpleMath">\(A\)</span>. This generating set is then given as the rows of a matrix <span class="SimpleMath">\(Y\)</span> and <span class="SimpleMath">\(YA=0\)</span>.</p>

</li>
</ul>
<p>The first operation is nothing but deciding the solvability of the inhomogeneous system <span class="SimpleMath">\(XA=B\)</span> and if solvable to compute a particular solution <span class="SimpleMath">\(X\)</span>, while the second is to compute an <span class="SimpleMath">\(R\)</span>-generating set for the homogeneous solution space, i.e. the solution space of the homogeneous system <span class="SimpleMath">\(YA=0\)</span>. The above is of course also valid for the column convention.</p>

<p><a id="X808E7BA97C5EA311" name="X808E7BA97C5EA311"></a></p>

<h5>1.1-3 <span class="Heading">The black box concept</span></h5>

<p>Now we address the following concerns: Wouldn't the idea of using algorithms like the Gröbnerbasis algorithm(s) as a black box (--> homalg delegates ...) contradict the following facts?




<ul>
<li><p>It is known that an efficient Gröbnerbasis algorithm depends on the ring <span class="SimpleMath">\(R\)</span> under consideration. For example the implementation of the algorithm depends on the ground ring (or field) <span class="SimpleMath">\(k\)</span>.</p>

</li>
<li><p>Often enough highly specialized implementations are used to address specific types of linear systems of equations (occuring in specific homological problems) in order to increase the speed or reduce the space needed for the computations.</p>

</li>
</ul>
<p>The following should clarify the above concerns.</p>


<ul>
<li><p>Since each ring comes with its own black box, the first point is automatically resolved.</p>

</li>
<li><p>Allow the black box coming with each ring to contain the different available implementations and make them accessible to <strong class="pkg">homalg</strong> via standarized names, independent of the computer algebra system used to perform computations.</p>

</li>
</ul>
<p><a id="X78DD800B83ABC621" name="X78DD800B83ABC621"></a></p>

<h4>1.2 <span class="Heading">This manual</span></h4>

<p>Chapter <a href="chap2_mj.html#X8609DF5282514B96"><span class="RefLink">2</span></a> describes the installation of this package. The remaining chapters are each devoted to one of the <strong class="pkg">MatricesForHomalg</strong> objects (--> <a href="chap1_mj.html#X81B1923E82145E72"><span class="RefLink">1.1-1</span></a>) with its constructors, properties, attributes, and operations.</p>


<div class="chlinkprevnextbot"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap0_mj.html">[Previous Chapter]</a>    <a href="chap2_mj.html">[Next Chapter]</a>   </div>


<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chap6_mj.html">6</a>  <a href="chapA_mj.html">A</a>  <a href="chapB_mj.html">B</a>  <a href="chapC_mj.html">C</a>  <a href="chapD_mj.html">D</a>  <a href="chapE_mj.html">E</a>  <a href="chapF_mj.html">F</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>

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

100%


¤ Dauer der Verarbeitung: 0.10 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.