|
|
|
|
Quelle chap1_mj.html
Sprache: HTML
|
|
| products/Sources/formale Sprachen/GAP/pkg/toric/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 (toric) - 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="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#X7A77DB9F7E392A98">1.1 <span class="Heading">Introduction to the <strong class="pkg">toric</strong> package</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap1_mj.html#X7C4637B9828E445B">1.2 <span class="Heading">Introduction to constructing toric varieties</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap1_mj.html#X7AF8D94A7E56C049">1.2-1 <span class="Heading">Generalities</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap1_mj.html#X7A87B1F97D958BA9">1.2-2 <span class="Heading">Basic combinatorial geometry constructions</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap1_mj.html#X857707BA7D2336A0">1.2-3 <span class="Heading">Basic affine toric variety constructions</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap1_mj.html#X86627F4181E72808">1.2-4 <span class="Heading">Riemann-Roch spaces and related constructions</span></a>
</span>
</div></div>
</div>
<h3>1 <span class="Heading">Introduction</span></h3>
<p><a id="X7A77DB9F7E392A98" name="X7A77DB9F7E392A98"></a></p>
<h4>1.1 <span class="Heading">Introduction to the <strong class="pkg">toric</strong> package</span></h4>
<p>This manual describes the <strong class="pkg">toric</strong> package for working with toric varieties in <strong class="pkg">GAP</strong>. Toric varieties can be dealt with more easily than general varieties since often times questions about a toric variety can be reformulated in terms of combinatorial geometry. Some coding theory commands related to toric varieties are contained in the error-correcting codes <strong class="pkg">GUAVA</strong> package (for example, the command <code class="code">ToricCode</code>). We refer to the <strong class="pkg">GUAVA</strong> manual <a href="chapBib_mj.html#biBGua05">[FJT+09]</a> and the expository paper <a href="chapBib_mj.html#biBJV02">[JV02]</a> for more details.</p>
<p>The <strong class="pkg">toric</strong> package also contains several commands unrelated to toric varieties (mostly for list manipulations). These will not be described in this documention but they are briefly documented in the <code class="code">lib/util.gd</code> file.</p>
<p><strong class="pkg">toric</strong> is implemented in the <strong class="pkg">GAP</strong> language, and runs on any system supporting <strong class="pkg">GAP</strong>4.3 and above. The <strong class="pkg">toric</strong> package is loaded with the command</p>
<pre class="normal">
gap> LoadPackage( "toric" );
</pre>
<p>Please send bug reports, suggestions and other comments about <strong class="pkg">toric</strong> to <span class="URL"><a href="mailto:support@gap-system.org">support@gap-system.org</a></span>.</p>
<p><a id="X7C4637B9828E445B" name="X7C4637B9828E445B"></a></p>
<h4>1.2 <span class="Heading">Introduction to constructing toric varieties</span></h4>
<p>Rather than sketch the theory of toric varieties, we refer to <a href="chapBib_mj.html#biBJV02">[JV02]</a> and <a href="chapBib_mj.html#biBF93">[Ful93]</a> for details. However, we briefly describe some terminology and notation.</p>
<p><a id="X7AF8D94A7E56C049" name="X7AF8D94A7E56C049"></a></p>
<h5>1.2-1 <span class="Heading">Generalities</span></h5>
<p>Let <span class="SimpleMath">\(F\)</span> denote a field and <span class="SimpleMath">\(R=F [x_1,...,x_n]\)</span> be a ring in <span class="SimpleMath">\(n\)</span> variables. A <strong class="button">binomial equation</strong> in <span class="SimpleMath">\(R\)</span> is one of the form</p>
<p class="center">\[
x_1^{k_1}...x_n^{k_n}=x_1^{\ell_1}...x_n^{\ell_n},
\]</p>
<p>where <span class="SimpleMath">\(k_i \geq 0,\ \ell_j \geq 0\)</span> are integers. A binomial variety is a subvariety of affine <span class="SimpleMath">\(n\)</span>-space <span class="SimpleMath">\(A_F^n\)</span> defined by a finite set of binomial equations (such a variety need not be normal). A typical ``toric variety'' is binomial, though they will be introduced via an <em>a priori</em> independent construction. The basic idea of the construction is to replace each such binomial equation as above by a relation in a semigroup contained in a lattice and replace <span class="SimpleMath">\(R\)</span> by the ``group algebra'' of this semigroup. By the way, a toric variety is always normal (see for example, <a href="chapBib_mj.html#biBF93">[Ful93]</a>, page 29).</p>
<p><a id="X7A87B1F97D958BA9" name="X7A87B1F97D958BA9"></a></p>
<h5>1.2-2 <span class="Heading">Basic combinatorial geometry constructions</span></h5>
<p>Let <span class="SimpleMath">\(Q\)</span> denote the field of rational numbers and <span class="SimpleMath">\(Z\)</span> denote the set of integers. Let <span class="SimpleMath">\(n>1\)</span> denote an integer.</p>
<p>Let <span class="SimpleMath">\(V=Q^n\)</span> having basis <span class="SimpleMath">\(f_1=(1,0,...,0)\)</span>, ..., <span class="SimpleMath">\(f_n=(0,...,0,1)\)</span>. Let <span class="SimpleMath">\(L_0=Z^n\subset V\)</span> be the standard lattice in <span class="SimpleMath">\(V\)</span>. We identify <span class="SimpleMath">\(V\)</span> and <span class="SimpleMath">\(L_0\otimes_{Z} Q\)</span>. We use <span class="SimpleMath">\(\langle\ ,\ \rangle\)</span> to denote the (standard) inner product on <span class="SimpleMath">\(V\)</span>. Let</p>
<p class="center">\[
L_0^*={\rm Hom}(L_0,Z)=\{ v\in V\ |\ \langle v,w \rangle \in Z,
\ \forall w\in L_0\}
\]</p>
<p>denote the <strong class="button">dual lattice</strong>, so (fixing the standard basis <span class="SimpleMath">\(e_1^*\)</span>,...,<span class="SimpleMath">\(e_n^*\)</span> dual to the <span class="SimpleMath">\(f_1\)</span>,...,<span class="SimpleMath">\(f_n\)</span>) <span class="SimpleMath">\(L_0^*\)</span> may be identified with <span class="SimpleMath">\(Z^n\)</span>.</p>
<p>A <strong class="button">cone</strong> in <span class="SimpleMath">\(V\)</span> is a set <span class="SimpleMath">\(\sigma\)</span> of the form</p>
<p class="center">\[
\sigma=\{a_1v_1+...+a_mv_m\ |\ a_i\geq 0\}\subset V,
\]</p>
<p>where <span class="SimpleMath">\(v_1,...,v_m \in V\)</span> is a given collection of vectors, called (semigroup) <strong class="button">generators</strong> of <span class="SimpleMath">\(\sigma\)</span>. A <strong class="button">rational cone</strong> is one where <span class="SimpleMath">\(v_1,...,v_m \in L_0\)</span>. A <strong class="button">strongly convex</strong> cone is one which contains no lines through the origin.</p>
<p><em> By abuse of terminology, from now on a <strong class="button">cone</strong> of <span class="SimpleMath">\(L_0\)</span> is a strongly convex rational cone. </em></p>
<p>A <strong class="button">face</strong> of a cone <span class="SimpleMath">\(\sigma\)</span> is either <span class="SimpleMath">\(\sigma\)</span> itself or a subset of the form <span class="SimpleMath">\(H\cap \sigma\)</span>, where <span class="SimpleMath">\(H\)</span> is a codimension one subspace of <span class="SimpleMath">\(V\)</span> which intersects the cone non-trivially and such that the cone is contained in exactly one of the two half-spaces determined by <span class="SimpleMath">\(H\)</span>. A <strong class="button">ray</strong> (or edge) of a cone is a one-dimensional face. Typically, cones are represented in <strong class="pkg">toric</strong> by the list of vectors defining their rays. The <strong class="button">dimension</strong> of a cone is the dimension of the vector space it spans. The <strong class="pkg">toric</strong> package can test if a given vector is in a given cone (see <code class="code">InsideCone</code>).</p>
<p>If <span class="SimpleMath">\(\sigma\)</span> is a cone then the <strong class="button">dual cone</strong> is defined by</p>
<p class="center">\[
\sigma^* =\{w \in L_0^*\otimes Q
\ |\ \langle v,w \rangle \geq 0,\ \forall v\in \sigma\}.
\]</p>
<p>The <strong class="pkg">toric</strong> package can test if a vector is in the dual of a given cone (see <code class="code">InDualCone</code>).</p>
<p>Associate to the dual cone <span class="SimpleMath">\(\sigma^*\)</span> is the semigroup</p>
<p class="center">\[
S_\sigma =\sigma^*\cap L_0^*
=\{w\in L_0^*
\ |\ \langle v,w\rangle \geq 0,\
\forall v\in \sigma\}.
\]</p>
<p>Though <span class="SimpleMath">\(L_0^*\)</span> has $n$ generators <em>as a lattice</em>, typically <span class="SimpleMath">\(S_\sigma\)</span> will have more than <span class="SimpleMath">\(n\)</span> generators <em>as a semigroup</em>. The <strong class="pkg">toric</strong> package can compute a minimal list of semigroup generators of <span class="SimpleMath">\(S_\sigma\)</span> (see <code class="code">DualSemigroupGenerators</code>).</p>
<p>A fan is a collection of cones which ``fit together'' well. A <strong class="button">fan</strong> in <span class="SimpleMath">\(L_0\)</span> is a set <span class="SimpleMath">\(\Delta=\{\sigma \}\)</span> of rational strongly convex cones in <span class="SimpleMath">\(V= L_0 \otimes Q\)</span> such that</p>
<ul>
<li><p>if <span class="SimpleMath">\(\sigma \in \Delta\)</span> and <span class="SimpleMath">\(\tau \subset \sigma\)</span> is a face of <span class="SimpleMath">\(\sigma\)</span> then <span class="SimpleMath">\(\tau \in \Delta\)</span>,</p>
</li>
<li><p>if <span class="SimpleMath">\(\sigma_1, \sigma_2 \in \Delta\)</span> then the intersection <span class="SimpleMath">\(\sigma_1 \cap \sigma_2\)</span> is a face of both <span class="SimpleMath">\(\sigma_1\)</span> and <span class="SimpleMath">\(\sigma_2\)</span> (and hence belongs to <span class="SimpleMath">\(\Delta\)</span>).</p>
</li>
</ul>
<p>In particular, the face of a cone in a fan is a cone is the fan.</p>
<p>If <span class="SimpleMath">\(V\)</span> is the (set-theoretic) union of the cones in <span class="SimpleMath">\(\Delta\)</span> then we call the fan <strong class="button">complete</strong>. We shall assume that all fans are finite. A fan is determined by its list of maximal cones.</p>
<p><em>Notation</em>: A fan <span class="SimpleMath">\(\Delta\)</span> is represented in <strong class="pkg">toric</strong> as a set of maximal cones. For example, if <span class="SimpleMath">\(\Delta\)</span> is the fan with maximal cones <span class="SimpleMath">\(\sigma_1=Q_+\cdot f_1+Q_+\cdot (-f_1+f_2)\)</span>, <span class="SimpleMath">\(\sigma_2=Q_+\cdot (-f_1+f_2)+Q_+\cdot (-f_1-f_2)\)</span>, <span class="SimpleMath">\(\sigma_3=Q_+\cdot (-f_1-f_2)+Q_+\cdot f_1\)</span>, then <span class="SimpleMath">\(\Delta\)</span> is represented by <span class="SimpleMath">\([[[1,0],[-1,1]],[[-1,1],[-1,-1]],[[-1,-1],[1,0]]]\)</span>.</p>
<p>The <strong class="pkg">toric</strong> package can compute all cones in a fan of a given dimension (see <code class="code">ConesOfFan</code>). Moreover, <strong class="pkg">toric</strong> can compute the set of all normal vectors to the faces (i.e., hyperplanes) of a cone (see <code class="code">Faces</code>).</p>
<p>The <strong class="button">star</strong> of a cone <span class="SimpleMath">\(\sigma\)</span> in a fan <span class="SimpleMath">\(\Delta\)</span> is the set <span class="SimpleMath">\(\Delta_\sigma\)</span> of cones in <span class="SimpleMath">\(\Delta\)</span> containing <span class="SimpleMath">\(\sigma\)</span> as a face. The <strong class="pkg">toric</strong> package can compute stars (see <code class="code">ToricStar</code>).</p>
<p><a id="X857707BA7D2336A0" name="X857707BA7D2336A0"></a></p>
<h5>1.2-3 <span class="Heading">Basic affine toric variety constructions</span></h5>
<p>Let</p>
<p class="center">\[
R_\sigma = F [S_\sigma]
\]</p>
<p>denote the ``group algebra'' of this semigroup. It is a finitely generated commutative F-algebra. It is in fact integrally closed (<a href="chapBib_mj.html#biBF93">[Ful93]</a>, page 29). We may interprete <span class="SimpleMath">\(R_\sigma\)</span> as a subring of <span class="SimpleMath">\(R=F [x_1,...,x_n]\)</span> as follows: First, identify each <span class="SimpleMath">\(e_i^*\)</span> with the variable <span class="SimpleMath">\(x_i\)</span>. If <span class="SimpleMath">\(S_\sigma\)</span> is generated as a semigroup by vectors of the form <span class="SimpleMath">\(\ell_1 e_1^*+...+\ell_n e_n^*\)</span>, where <span class="SimpleMath">\(\ell_i\)</span> is an integer, then its image in <span class="SimpleMath">\(R\)</span> is generated by monomials of the form <span class="SimpleMath">\(x_1^{\ell_1}\dots x_n^{\ell_n}\)</span>. The <strong class="pkg">toric</strong> package can compute these generating monomials (see <code class="code">EmbeddingAffineToricVariety</code>). See Lemma 2.14 in <a href="chapBib_mj.html#biBJV02">[JV02]</a> for more details. This embedding can also be used to resolve singularities - see section 5 of <a href="chapBib_mj.html#biBJV02">[JV02]</a> for more details.</p>
<p>Let</p>
<p class="center">\[
U_\sigma={\rm Spec}\ R_\sigma.
\]</p>
<p>This defines an <strong class="button">affine toric variety</strong> (associated to <span class="SimpleMath">\(\sigma\)</span>). It is known that the coordinate ring <span class="SimpleMath">\(R_\sigma\)</span> of the affine toric variety <span class="SimpleMath">\(U_\sigma\)</span> has the form <span class="SimpleMath">\(R_\sigma = F[x_1,...,x_n]/J\)</span>, where <span class="SimpleMath">\(J\)</span> is an ideal. The <strong class="pkg">toric</strong> package can compute generators of this ideal by using the <code class="code">DualSemigroupGenerators</code> and the <code class="code">EmbeddingAffineToricVariety</code> commands.</p>
<p>Roughly speaking, the toric variety <span class="SimpleMath">\(X(\Delta)\)</span> associated to the fan <span class="SimpleMath">\(\Delta\)</span> is given by a collection of affine pieces $U_{\sigma_1},U_{\sigma_2},\dots,U_{\sigma_d}$ which ``glue'' together (where <span class="SimpleMath">\(\Delta = \{\sigma_i\}\)</span>). The affine pieces are given by the zero sets of polynomial equations in some affine spaces and the gluings are given by maps <span class="SimpleMath">\(\phi_{i,j} : U_{\sigma_i} \rightarrow U_{\sigma_j}\)</span> which are defined by ratios of polynomials on open subsets of the $U_{\sigma_i}$. The <strong class="pkg">toric</strong> package does <em>not</em> compute these gluings or work directly with these (non-affine) varieties <span class="SimpleMath">\(X(\Delta)\)</span>.</p>
<p>A cone <span class="SimpleMath">\(\sigma \subset V\)</span> is said to be <strong class="button">nonsingular</strong> if it is generated by part of a basis for the lattice <span class="SimpleMath">\(L_0\)</span>. A fan <span class="SimpleMath">\(\Delta\)</span> of cones is said to be <strong class="button">nonsingular</strong> if all its cones are nonsingular. It is known that <span class="SimpleMath">\(U_\sigma\)</span> is nonsingular if and only if <span class="SimpleMath">\(\sigma\)</span> is nonsingular (Proposition 2.1 in <a href="chapBib_mj.html#biBF93">[Ful93]</a>).</p>
<p><strong class="button">Example:</strong> In three dimensions, consider the cones <span class="SimpleMath">\(\sigma_{\epsilon_1,\epsilon_2,\epsilon_3,i,j}\)</span> generated by <span class="SimpleMath">\((\epsilon_1\cdot 1,\epsilon_2\cdot 1,\epsilon_3\cdot 1)\)</span> and the standard basis vectors <span class="SimpleMath">\(f_i,f_j\)</span>, where <span class="SimpleMath">\(\epsilon_i=\pm 1\)</span> and <span class="SimpleMath">\(1\leq i\not= j\leq 3\)</span>. There are 8 cones per octant, for a total of 64 cones. Let <span class="SimpleMath">\(\Delta\)</span> denote the fan in <span class="SimpleMath">\(V=Q^3\)</span> determined by these maximal cones. The toric variety <span class="SimpleMath">\(X(\Delta)\)</span> is nonsingular.</p>
<p><a id="X86627F4181E72808" name="X86627F4181E72808"></a></p>
<h5>1.2-4 <span class="Heading">Riemann-Roch spaces and related constructions</span></h5>
<p>Although the <strong class="pkg">toric</strong> package does not work directly with the toric varieties <span class="SimpleMath">\(X(\Delta)\)</span>, it can compute objects associated with it. For example, it can compute the Euler characteristic (see <code class="code">EulerCharacteristic</code>), Betti numbers (see <code class="code">BettiNumberToric</code>), and the number of GF(q)-rational points (see <code class="code">CardinalityOfToricVariety</code>) of <span class="SimpleMath">\(X(\Delta)\)</span>, <em> provided <span class="SimpleMath">\(\Delta\)</span> is nonsingular.</em></p>
<p>For an algebraic variety <span class="SimpleMath">\(X\)</span> the group of <strong class="button">Weil divisors</strong> on <span class="SimpleMath">\(X\)</span> is the abelian group <span class="SimpleMath">\(Div(X)\)</span> generated (additively) by the irreducible subvarieties of X of codimension <span class="SimpleMath">\(1\)</span>. For a toric variety <span class="SimpleMath">\(X(\Delta)\)</span> with dense open torus <span class="SimpleMath">\(T\)</span>, a Weil divisor D is <strong class="button">T-invariant</strong> if <span class="SimpleMath">\(D=T\cdot D\)</span>. The group of <span class="SimpleMath">\(T\)</span>-invariant Weil divisors is denoted <span class="SimpleMath">\(TDiv(X)\)</span>. This is finitely generated by an explicitly given finite set of divisors <span class="SimpleMath">\(\{D_1,...,D_r\}\)</span> which correspond naturally to certain cones in <span class="SimpleMath">\(\Delta\)</span> (see <a href="chapBib_mj.html#biBF93">[Ful93]</a> for details). In particular, we may represent such a divisor <span class="SimpleMath">\(D\)</span> in <span class="SimpleMath">\(TDiv(X)\)</span> by an <span class="SimpleMath">\(k\)</span>-tuple <span class="SimpleMath">\((d_1,...,d_k)\)</span> of integers.</p>
<p>Let <span class="SimpleMath">\(\Delta\)</span> denote a fan in <span class="SimpleMath">\(V=Q^n\)</span> with rays (or edges) <span class="SimpleMath">\(\tau_i\)</span>, <span class="SimpleMath">\(1\leq i\leq k\)</span>, and let <span class="SimpleMath">\(v_i\)</span> denote the first lattice point on <span class="SimpleMath">\(\tau_i\)</span>. Associated to the T-invariant Weil divisor <span class="SimpleMath">\(D=d_1D_1+...+d_kD_k\)</span>, is the <strong class="button">polytope</strong></p>
<p class="center">\[
P_D = \{ x=(x_1,...,x_n)\ |\ \langle x,v_i \rangle \geq -d_i,
\ \forall 1 \leq i \leq k\}.
\]</p>
<p>The <strong class="pkg">toric</strong> package can compute <span class="SimpleMath">\(P_D\)</span> (see <code class="code">DivisorPolytope</code>), as well as the set of all lattice points contained in this polytope (see <code class="code">DivisorPolytopeLatticePoints</code>). Also associated to the <span class="SimpleMath">\(T\)</span>-invariant Weil divisor <span class="SimpleMath">\(D=d_1D_1+...+d_kD_k\)</span>, is the Riemann-Roch space, <span class="SimpleMath">\(L(D)\)</span>. This is a space of functions on <span class="SimpleMath">\(X(\Delta)\)</span> whose zeros and poles are ``controlled'' by <span class="SimpleMath">\(D\)</span> (for a more precise definition, see <a href="chapBib_mj.html#biBF93">[Ful93]</a>). The <strong class="pkg">toric</strong> package can compute a basis for <span class="SimpleMath">\(L(D)\)</span> (see <code class="code">RiemannRochBasis</code>), <em> provided <span class="SimpleMath">\(\Delta\)</span> is complete and nonsingular.</em></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="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>
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet am 2026-11-03)
¤
*© Formatika GbR, Deutschland
|
|
2026-11-01
|
|
|
|
|
Neuigkeiten |
| Aktuelles |
| Motto des Tages |
|
Open Source Software |
|
|
|
Jenseits des Üblichen ....
|
|
Besucherstatistik |
|
|
| Statistik |
| #Sources=1104850 |
| #Domains=416982 |
|
|