<p><strong class="pkg">GAP</strong> admits computations in abelian extension fields of the rational number field <span class="SimpleMath">ℚ</span>, that is fields with abelian Galois group over <span class="SimpleMath">ℚ</span>. These fields are subfields of <em>cyclotomic fields</em> <span class="SimpleMath">ℚ(e_n)</span> where <span class="SimpleMath">e_n = exp(2 π i/n)</span> is a primitive complex <span class="SimpleMath">n</span>-th root of unity. The elements of these fields are called <em>cyclotomics</em>.</p>
<p>Information concerning operations for domains of cyclotomics, for example certain integral bases of fields of cyclotomics, can be found in Chapter <a href="chap60.html#X80510B5880521FDC"><span class="RefLink">60</span></a>. For more general operations that take a field extension as a –possibly optional– argument, e.g., <code class="func">Trace</code> (<a href="chap58.html#X7DD17EB581200AD6"><span class="RefLink">58.3-5</span></a>) or <code class="func">Coefficients</code> (<a href="chap61.html#X80B32F667BF6AFD8"><span class="RefLink">61.6-3</span></a>), see Chapter <a href="chap58.html#X80A8E676814A19FD"><span class="RefLink">58</span></a>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ E</code>( <var class="Arg">n</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><code class="func">E</code> returns the primitive <var class="Arg">n</var>-th root of unity <span class="SimpleMath">e_n = exp(2π i/n)</span>. Cyclotomics are usually entered as sums of roots of unity, with rational coefficients, and irrational cyclotomics are displayed in such a way. (For special cyclotomics, see <a href="chap18.html#X7B242083873DD74F"><span class="RefLink">18.4</span></a>.)</p>
<p>A particular basis is used to express cyclotomics, see <a href="chap60.html#X7D2421AC8491D2BE"><span class="RefLink">60.3</span></a>; note that <code class="code">E(9)</code> is <em>not</em> a basis element, as the above example shows.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Cyclotomics</code></td><td class="tdright">( global variable )</td></tr></table></div>
<p>is the domain of all cyclotomics.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">E(9) in Cyclotomics; 37 in Cyclotomics; true in Cyclotomics;</span>
true
true
false
</pre></div>
<p>As the cyclotomics are field elements, the usual arithmetic operators <code class="code">+</code>, <code class="code">-</code>, <code class="code">*</code> and <code class="code">/</code> (and <code class="code">^</code> to take powers by integers) are applicable. Note that <code class="code">^</code> does <em>not</em> denote the conjugation of group elements, so it is <em>not</em> possible to explicitly construct groups of cyclotomics. (However, it is possible to compute the inverse and the multiplicative order of a nonzero cyclotomic.) Also, taking the <span class="SimpleMath">k</span>-th power of a root of unity <span class="SimpleMath">z</span> defines a Galois automorphism if and only if <span class="SimpleMath">k</span> is coprime to the conductor (see <code class="func">Conductor</code> (<a href="chap18.html#X815D6EC57CBA9827"><span class="RefLink">18.1-7</span></a>)) of <span class="SimpleMath">z</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCyclotomic</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCyc</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<p>Every object in the family <code class="code">CyclotomicsFamily</code> lies in the category <code class="func">IsCyclotomic</code>. This covers integers, rationals, proper cyclotomics, the object <code class="func">infinity</code> (<a href="chap18.html#X8511B8DF83324C27"><span class="RefLink">18.2-1</span></a>), and unknowns (see Chapter <a href="chap74.html#X7C1FAB6280A02CCB"><span class="RefLink">74</span></a>). All these objects except <code class="func">infinity</code> (<a href="chap18.html#X8511B8DF83324C27"><span class="RefLink">18.2-1</span></a>) and unknowns lie also in the category <code class="func">IsCyc</code>, <code class="func">infinity</code> (<a href="chap18.html#X8511B8DF83324C27"><span class="RefLink">18.2-1</span></a>) lies in (and can be detected from) the category <code class="func">IsInfinity</code> (<a href="chap18.html#X8511B8DF83324C27"><span class="RefLink">18.2-1</span></a>), and unknowns lie in <code class="func">IsUnknown</code> (<a href="chap74.html#X828556067E069B6D"><span class="RefLink">74.1-3</span></a>).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsIntegralCyclotomic</code>( <var class="Arg">obj</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>A cyclotomic is called <em>integral</em> or a <em>cyclotomic integer</em> if all coefficients of its minimal polynomial over the rationals are integers. Since the underlying basis of the external representation of cyclotomics is an integral basis (see <a href="chap60.html#X7D2421AC8491D2BE"><span class="RefLink">60.3</span></a>), the subring of cyclotomic integers in a cyclotomic field is formed by those cyclotomics for which the external representation is a list of integers. For example, square roots of integers are cyclotomic integers (see <a href="chap18.html#X7B242083873DD74F"><span class="RefLink">18.4</span></a>), any root of unity is a cyclotomic integer, character values are always cyclotomic integers, but all rationals which are not integers are not cyclotomic integers.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">r:= ER( 5 ); # The square root of 5 ...</span>
E(5)-E(5)^2-E(5)^3+E(5)^4
<span class="GAPprompt">gap></span> <span class="GAPinput">IsIntegralCyclotomic( r ); # ... is a cyclotomic integer.</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">r2:= 1/2 * r; # This is not a cyclotomic integer, ...</span>
1/2*E(5)-1/2*E(5)^2-1/2*E(5)^3+1/2*E(5)^4
<span class="GAPprompt">gap></span> <span class="GAPinput">IsIntegralCyclotomic( r2 );</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">r3:= 1/2 * r - 1/2; # ... but this is one.</span>
E(5)+E(5)^4
<span class="GAPprompt">gap></span> <span class="GAPinput">IsIntegralCyclotomic( r3 );</span>
true
</pre></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Int</code>( <var class="Arg">cyc</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>The operation <code class="func">Int</code> can be used to find a cyclotomic integer near to an arbitrary cyclotomic, by applying <code class="func">Int</code> (<a href="chap14.html#X87CA734380B5F68C"><span class="RefLink">14.2-3</span></a>) to the coefficients.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ String</code>( <var class="Arg">cyc</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>The operation <code class="func">String</code> returns for a cyclotomic <var class="Arg">cyc</var> a string corresponding to the way the cyclotomic is printed by <code class="func">ViewObj</code> (<a href="chap6.html#X815BF22186FD43C9"><span class="RefLink">6.3-5</span></a>) and <code class="func">PrintObj</code> (<a href="chap6.html#X815BF22186FD43C9"><span class="RefLink">6.3-5</span></a>).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Conductor</code>( <var class="Arg">cyc</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Conductor</code>( <var class="Arg">C</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>For an element <var class="Arg">cyc</var> of a cyclotomic field, <code class="func">Conductor</code> returns the smallest integer <span class="SimpleMath">n</span> such that <var class="Arg">cyc</var> is contained in the <span class="SimpleMath">n</span>-th cyclotomic field. For a collection <var class="Arg">C</var> of cyclotomics (for example a dense list of cyclotomics or a field of cyclotomics), <code class="func">Conductor</code> returns the smallest integer <span class="SimpleMath">n</span> such that all elements of <var class="Arg">C</var> are contained in the <span class="SimpleMath">n</span>-th cyclotomic field.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AbsoluteValue</code>( <var class="Arg">cyc</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>returns the absolute value of a cyclotomic number <var class="Arg">cyc</var>. At the moment only methods for rational numbers exist.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RoundCyc</code>( <var class="Arg">cyc</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>is a cyclotomic integer <span class="SimpleMath">z</span> (see <code class="func">IsIntegralCyclotomic</code> (<a href="chap18.html#X869750DA81EA0E67"><span class="RefLink">18.1-4</span></a>)) near to the cyclotomic <var class="Arg">cyc</var> in the following sense: Let <code class="code">c</code> be the <span class="SimpleMath">i</span>-th coefficient in the external representation (see <code class="func">CoeffsCyc</code> (<a href="chap18.html#X7AE2933985BE4C3E"><span class="RefLink">18.1-10</span></a>)) of <var class="Arg">cyc</var>. Then the <span class="SimpleMath">i</span>-th coefficient in the external representation of <span class="SimpleMath">z</span> is <code class="code">Int( c + 1/2 )</code> or <code class="code">Int( c - 1/2 )</code>, depending on whether <code class="code">c</code> is nonnegative or negative, respectively.</p>
<p>Expressed in terms of the Zumbroich basis (see <a href="chap60.html#X7D2421AC8491D2BE"><span class="RefLink">60.3</span></a>), rounding the coefficients of <var class="Arg">cyc</var> w.r.t. this basis to the nearest integer yields the coefficients of <span class="SimpleMath">z</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CoeffsCyc</code>( <var class="Arg">cyc</var>, <var class="Arg">N</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Let <var class="Arg">cyc</var> be a cyclotomic with conductor <span class="SimpleMath">n</span> (see <code class="func">Conductor</code> (<a href="chap18.html#X815D6EC57CBA9827"><span class="RefLink">18.1-7</span></a>)). If <var class="Arg">N</var> is not a multiple of <span class="SimpleMath">n</span> then <code class="func">CoeffsCyc</code> returns <code class="keyw">fail</code> because <var class="Arg">cyc</var> cannot be expressed in terms of <var class="Arg">N</var>-th roots of unity. Otherwise <code class="func">CoeffsCyc</code> returns a list of length <var class="Arg">N</var> with entry at position <span class="SimpleMath">j</span> equal to the coefficient of <span class="SimpleMath">exp(2 π i (j-1)/<var class="Arg">N</var>)</span> if this root belongs to the <var class="Arg">N</var>-th Zumbroich basis (see <a href="chap60.html#X7D2421AC8491D2BE"><span class="RefLink">60.3</span></a>), and equal to zero otherwise. So we have <var class="Arg">cyc</var> = <code class="code">CoeffsCyc(</code> <var class="Arg">cyc</var>, <var class="Arg">N</var> <code class="code">) * List( [1..</code><var class="Arg">N</var><code class="code">], j -> E(</code><var class="Arg">N</var><codeclass="code">)^(j-1) )</code>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DenominatorCyc</code>( <var class="Arg">cyc</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>For a cyclotomic number <var class="Arg">cyc</var> (see <code class="func">IsCyclotomic</code> (<a href="chap18.html#X841C425281A6F775"><span class="RefLink">18.1-3</span></a>)), this function returns the smallest positive integer <span class="SimpleMath">n</span> such that <span class="SimpleMath">n</span><code class="code"> * </code><var class="Arg">cyc</var> is a cyclotomic integer (see <code class="func">IsIntegralCyclotomic</code> (<a href="chap18.html#X869750DA81EA0E67"><span class="RefLink">18.1-4</span></a>)). For rational numbers <var class="Arg">cyc</var>, the result is the same as that of <code class="func">DenominatorRat</code> (<a href="chap17.html#X81F6B5877A81E727"><span class="RefLink">17.2-5</span></a>).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ExtRepOfObj</code>( <var class="Arg">cyc</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>The external representation of a cyclotomic <var class="Arg">cyc</var> with conductor <span class="SimpleMath">n</span> (see <code class="func">Conductor</code> (<a href="chap18.html#X815D6EC57CBA9827"><span class="RefLink">18.1-7</span></a>) is the list returned by <code class="func">CoeffsCyc</code> (<a href="chap18.html#X7AE2933985BE4C3E"><span class="RefLink">18.1-10</span></a>), called with <var class="Arg">cyc</var> and <span class="SimpleMath">n</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DescriptionOfRootOfUnity</code>( <var class="Arg">root</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Given a cyclotomic <var class="Arg">root</var> that is known to be a root of unity (this is <em>not</em> checked), <code class="func">DescriptionOfRootOfUnity</code> returns a list <span class="SimpleMath">[ n, e ]</span> of coprime positive integers such that <var class="Arg">root</var> <span class="SimpleMath">=</span> <code class="code">E</code><span class="SimpleMath">(n)^e</span> holds.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsGaussInt</code>( <var class="Arg">x</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><code class="func">IsGaussInt</code> returns <code class="keyw">true</code> if the object <var class="Arg">x</var> is a Gaussian integer (see <code class="func">GaussianIntegers</code> (<a href="chap60.html#X80BD5EAB879F096E"><span class="RefLink">60.5-1</span></a>)), and <code class="keyw">false</code> otherwise. Gaussian integers are of the form <span class="SimpleMath">a + b</span><code class="code">*E(4)</code>, where <span class="SimpleMath">a</span> and <span class="SimpleMath">b</span> are integers.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsGaussRat</code>( <var class="Arg">x</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><code class="func">IsGaussRat</code> returns <code class="keyw">true</code> if the object <var class="Arg">x</var> is a Gaussian rational (see <code class="func">GaussianRationals</code> (<a href="chap60.html#X82F53C65802FF551"><span class="RefLink">60.1-3</span></a>)), and <code class="keyw">false</code> otherwise. Gaussian rationals are of the form <span class="SimpleMath">a + b</span><code class="code">*E(4)</code>, where <span class="SimpleMath">a</span> and <span class="SimpleMath">b</span> are rationals.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DefaultField</code>( <var class="Arg">list</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><code class="func">DefaultField</code> for cyclotomics is defined to return the smallest <em>cyclotomic</em> field containing the given elements.</p>
<p>Note that <code class="func">Field</code> (<a href="chap58.html#X871AA7D58263E9AC"><span class="RefLink">58.1-3</span></a>) returns the smallest field containing all given elements, which need not be a cyclotomic field. In both cases, the fields represent vector spaces over the rationals (see <a href="chap60.html#X7D2421AC8491D2BE"><span class="RefLink">60.3</span></a>).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsInfinity</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsNegInfinity</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ infinity</code></td><td class="tdright">( global variable )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ -infinity</code></td><td class="tdright">( global variable )</td></tr></table></div>
<p><code class="func">infinity</code> and <code class="func">-infinity</code> are special <strong class="pkg">GAP</strong> objects that lie in <code class="code">CyclotomicsFamily</code>. They are larger or smaller than all other objects in this family respectively. <code class="func">infinity</code> is mainly used as return value of operations such as <code class="func">Size</code> (<a href="chap30.html#X858ADA3B7A684421"><span class="RefLink">30.4-6</span></a>) and <code class="func">Dimension</code> (<a href="chap57.html#X7E6926C6850E7C4E"><span class="RefLink">57.3-3</span></a>) for infinite and infinite dimensional domains, respectively.</p>
<p>Some arithmetic operations are provided for convenience when using <code class="func">infinity</code> and <code class="func">-infinity</code> as top and bottom element respectively.</p>
<p>Often it is useful to distinguish <code class="func">infinity</code> from <q>proper</q> cyclotomics. For that, <code class="func">infinity</code> lies in the category <code class="func">IsInfinity</code> but not in <code class="func">IsCyc</code> (<a href="chap18.html#X841C425281A6F775"><span class="RefLink">18.1-3</span></a>), and the other cyclotomics lie in the category <code class="func">IsCyc</code> (<a href="chap18.html#X841C425281A6F775"><span class="RefLink">18.1-3</span></a>) but not in <code class="func">IsInfinity</code>.</p>
<h4>18.3 <span class="Heading">Comparisons of Cyclotomics</span></h4>
<p>To compare cyclotomics, the operators <code class="code"><</code>, <code class="code"><=</code>, <code class="code">=</code>, <code class="code">>=</code>, <code class="code">></code>, and <code class="code"><></code> can be used, the result will be <code class="keyw">true</code> if the first operand is smaller, smaller or equal, equal, larger or equal, larger, or unequal, respectively, and <code class="keyw">false</code> otherwise.</p>
<p>Cyclotomics are ordered as follows: The relation between rationals is the natural one, rationals are smaller than irrational cyclotomics, and <code class="func">infinity</code> (<a href="chap18.html#X8511B8DF83324C27"><span class="RefLink">18.2-1</span></a>) is the largest cyclotomic. For two irrational cyclotomics with different conductors (see <code class="func">Conductor</code> (<a href="chap18.html#X815D6EC57CBA9827"><span class="RefLink">18.1-7</span></a>)), the one with smaller conductor is regarded as smaller. Two irrational cyclotomics with same conductor are compared via their external representation (see <code class="func">ExtRepOfObj</code> (<a href="chap18.html#X785F2CAB805DE1BE"><span class="RefLink">18.1-12</span></a>)).</p>
<p>For comparisons of cyclotomics and other <strong class="pkg">GAP</strong> objects, see Section <a href="chap4.html#X7A274A1F8553B7E6"><span class="RefLink">4.13</span></a>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">E(5) < E(6); # the latter value has conductor 3</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">E(3) < E(3)^2; # both have conductor 3, compare the ext. repr.</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">3 < E(3); E(5) < E(7);</span>
true
true
</pre></div>
<p>(Note that in <code class="code">EC(</code><var class="Arg">N</var><code class="code">)</code>, <span class="SimpleMath">...</span>, <code class="code">EH(</code><var class="Arg">N</var><code class="code">)</code>, <var class="Arg">N</var> must be a prime.)</p>
<h5>18.4-2 <span class="Heading">EI and ER</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ EI</code>( <var class="Arg">N</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ER</code>( <var class="Arg">N</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>For a rational number <var class="Arg">N</var>, <code class="func">ER</code> returns the square root <span class="SimpleMath">sqrt{<var class="Arg">N</var>}</span> of <var class="Arg">N</var>, and <code class="func">EI</code> returns <span class="SimpleMath">sqrt{-<var class="Arg">N</var>}</span>. By the chosen embedding of cyclotomic fields into the complex numbers, <code class="func">ER</code> returns the positive square root if <var class="Arg">N</var> is positive, and if <var class="Arg">N</var> is negative then <code class="code">ER(</code><var class="Arg">N</var><code class="code">) = EI(-</code><var class="Arg">N</var><code class="code">)</code> holds. In any case, <code class="code">EI(</code><var class="Arg">N</var><code class="code">) = E(4) * ER(</code><var class="Arg">N</var><code class="code">)</code>.</p>
<p><code class="func">ER</code> is installed as method for the operation <code class="func">Sqrt</code> (<a href="chap31.html#X7E8F1FB87C229BB0"><span class="RefLink">31.12-5</span></a>), for rational argument.</p>
<p>From a theorem of Gauss (see <a href="chapBib.html#biBLan70">[Lan70, QS4 in Ch. IV, Par. 3]</a>) we know that <span class="SimpleMath">b_<var class="Arg">N</var> =</span></p>
<p>So <span class="SimpleMath">sqrt{<var class="Arg">N</var>}</span> can be computed from <span class="SimpleMath">b_<var class="Arg">N</var></span>, see <code class="func">EB</code> (<a href="chap18.html#X8414ED887AF36359"><span class="RefLink">18.4-1</span></a>).</p>
<p>For the two-argument versions of the functions, see Section <code class="func">NK</code> (<a href="chap18.html#X844F0EBF849EDEB3"><span class="RefLink">18.4-5</span></a>).</p>
<p>For the two-argument versions of the functions, see Section <code class="func">NK</code> (<a href="chap18.html#X844F0EBF849EDEB3"><span class="RefLink">18.4-5</span></a>).</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NK</code>( <var class="Arg">N</var>, <var class="Arg">k</var>, <var class="Arg">d</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Let <span class="SimpleMath"><var class="Arg">N</var>_<var class="Arg">k</var>^(<var class="Arg">d</var>)</span> be the <span class="SimpleMath">(<var class="Arg">d</var>+1)</span>-th integer with multiplicative order exactly <var class="Arg">k</var> modulo <var class="Arg">N</var>, chosen in the order of preference defined in Section <a href="chap18.html#X8672D7F986CBA116"><span class="RefLink">18.4-3</span></a>; <code class="func">NK</code> returns <span class="SimpleMath"><var class="Arg">N</var>_<var class="Arg">k</var>^(<var class="Arg">d</var>)</span>; if there is no integer with the required multiplicative order, <code class="func">NK</code> returns <code class="keyw">fail</code>.</p>
<p>We write <span class="SimpleMath"><var class="Arg">N</var>_<var class="Arg">k</var> = <var class="Arg">N</var>_<var class="Arg">k</var>^(0), <var class="Arg">N</var>_<var class="Arg">k</var>^' = N_k^(1), N_k^'' = N_k^(2) and so on.
<p>are obtained on replacing <span class="SimpleMath"><var class="Arg">N</var>_<var class="Arg">k</var></span> in the definitions in the sections <a href="chap18.html#X8672D7F986CBA116"><span class="RefLink">18.4-3</span></a> and <a href="chap18.html#X7E5985FC846C5201"><span class="RefLink">18.4-4</span></a> by <span class="SimpleMath"><var class="Arg">N</var>_<var class="Arg">k</var>^', N_k^'', ...; they can be entered as
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AtlasIrrationality</code>( <var class="Arg">irratname</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Let <var class="Arg">irratname</var> be a string that describes an irrational value as a linear combination in terms of the atomic irrationalities introduced in the sections <a href="chap18.html#X8414ED887AF36359"><span class="RefLink">18.4-1</span></a>, <a href="chap18.html#X813CF4327C4B4D29"><span class="RefLink">18.4-2</span></a>, <a href="chap18.html#X8672D7F986CBA116"><span class="RefLink">18.4-3</span></a>, <a href="chap18.html#X7E5985FC846C5201"><span class="RefLink">18.4-4</span></a>. These irrational values are defined in <a href="chapBib.html#biBCCN85">[CCN+85, Chapter 6, Section 10]</a>, and the following description is mainly copied from there. If <span class="SimpleMath">q_N</span> is such a value (e.g. <span class="SimpleMath">y_24^''</span>) then linear combinations of algebraic conjugates of <span class="SimpleMath">q_N</span> are abbreviated as in the following examples:</p>
<p>To explain the <q>ampersand</q> syntax in general we remark that <q>&k</q> is interpreted as <span class="SimpleMath">q_N^{*k}</span>, where <span class="SimpleMath">q_N</span> is the most recently named atomic irrationality, and that the scope of any premultiplying coefficient is broken by a <span class="SimpleMath">+</span> or <span class="SimpleMath">-</span> sign, but not by <span class="SimpleMath">&</span> or <span class="SimpleMath">*k</span>. The algebraic conjugations indicated by the ampersands apply directly to the <em>atomic</em> irrationality <span class="SimpleMath">q_N</span>, even when, as in the last example, <span class="SimpleMath">q_N</span> first appears with another conjugacy <span class="SimpleMath">*k</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GaloisCyc</code>( <var class="Arg">cyc</var>, <var class="Arg">k</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GaloisCyc</code>( <var class="Arg">list</var>, <var class="Arg">k</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>For a cyclotomic <var class="Arg">cyc</var> and an integer <var class="Arg">k</var>, <code class="func">GaloisCyc</code> returns the cyclotomic obtained by raising the roots of unity in the Zumbroich basis representation of <var class="Arg">cyc</var> to the <var class="Arg">k</var>-th power. If <var class="Arg">k</var> is coprime to the integer <span class="SimpleMath">n</span>, <code class="code">GaloisCyc( ., <var class="Arg">k</var> )</code> acts as a Galois automorphism of the <span class="SimpleMath">n</span>-th cyclotomic field (see <a href="chap60.html#X7E4AB4B17C7BA10C"><span class="RefLink">60.4</span></a>); to get the Galois automorphisms themselves, use <code class="func">GaloisGroup</code> (<a href="chap58.html#X80CAA5BA82F09ED2"><span class="RefLink">58.3-1</span></a>).</p>
<p>The <em>complex conjugate</em> of <var class="Arg">cyc</var> is <code class="code">GaloisCyc( <var class="Arg">cyc</var>, -1 )</code>, which can also be computed using <code class="func">ComplexConjugate</code> (<a href="chap18.html#X7BE001A0811CD599"><span class="RefLink">18.5-2</span></a>).</p>
<p>For a list or matrix <var class="Arg">list</var> of cyclotomics, <code class="func">GaloisCyc</code> returns the list obtained by applying <code class="func">GaloisCyc</code> to the entries of <var class="Arg">list</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ComplexConjugate</code>( <var class="Arg">z</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RealPart</code>( <var class="Arg">z</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ImaginaryPart</code>( <var class="Arg">z</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>For a cyclotomic number <var class="Arg">z</var>, <code class="func">ComplexConjugate</code> returns <code class="code">GaloisCyc( <var class="Arg">z</var>, -1 )</code>, see <code class="func">GaloisCyc</code> (<a href="chap18.html#X79EE9097783128C4"><span class="RefLink">18.5-1</span></a>). For a quaternion <span class="SimpleMath"><var class="Arg">z</var> = c_1 e + c_2 i + c_3 j + c_4 k</span>, <code class="func">ComplexConjugate</code> returns <span class="SimpleMath">c_1 e - c_2 i - c_3 j - c_4 k</span>, see <code class="func">IsQuaternion</code> (<a href="chap62.html#X82B3A9077D0CB453"><span class="RefLink">62.8-8</span></a>).</p>
<p>When <code class="func">ComplexConjugate</code> is called with a list then the result is the list of return values of <code class="func">ComplexConjugate</code> for the list entries in the corresponding positions.</p>
<p>When <code class="func">ComplexConjugate</code> is defined for an object <var class="Arg">z</var> then <code class="func">RealPart</code> and <code class="func">ImaginaryPart</code> return <codeclass="code">(<var class="Arg">z</var> + ComplexConjugate( <var class="Arg">z</var> )) / 2</code> and <code class="code">(<var class="Arg">z</var> - ComplexConjugate( <var class="Arg">z</var> )) / 2 i</code>, respectively, where <code class="code">i</code> denotes the corresponding imaginary unit.</p>
¤ 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.0.27Bemerkung:
(vorverarbeitet)
¤
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.