############################################################################# ## ## This file is part of GAP, a system for computational discrete algebra. ## This file's authors include Jens Hollmann. ## ## Copyright of GAP belongs to its developers, whose names are too numerous ## to list here. Please refer to the COPYRIGHT file for details. ## ## SPDX-License-Identifier: GPL-2.0-or-later ## ## This file contains the declaration part of the padic numbers. ##
############################################################################# ## #O Valuation( <obj> ) ## ## <#GAPDoc Label="Valuation"> ## <ManSection> ## <Oper Name="Valuation" Arg='obj'/> ## ## <Description> ## The valuation is the <M>p</M>-part of the <M>p</M>-adic number. ## See also <Ref Func="PValuation"/>. ## </Description> ## </ManSection> ## <#/GAPDoc> ##
DeclareOperation( "Valuation", [ IsObject ] );
############################################################################# ## #O PadicNumber( <fam>, <rat> ) #O PadicNumber( <purefam>,<list>) #O PadicNumber( <extfam>,<list>) ## ## <#GAPDoc Label="PadicNumber"> ## <ManSection> ## <Oper Name="PadicNumber" Arg='fam, rat' ## Label="for a p-adic extension family and a rational"/> ## <Oper Name="PadicNumber" Arg='purefam, list' ## Label="for a pure p-adic numbers family and a list"/> ## <Oper Name="PadicNumber" Arg='extfam, list' ## Label="for a p-adic extension family and a list"/> ## ## <Description> ## (see also <Ref Oper="PadicNumber" Label="for pure padics"/>). ## <P/> ## <Ref Oper="PadicNumber" ## Label="for a p-adic extension family and a rational"/> ## creates a <M>p</M>-adic number in the ## <M>p</M>-adic numbers family <A>fam</A>. ## The first form returns the <M>p</M>-adic number corresponding to the ## rational <A>rat</A>. ## <P/> ## The second form takes a pure <M>p</M>-adic numbers family <A>purefam</A> ## and a list <A>list</A> of length two, and returns the number ## <M>p</M><C>^</C><A>list</A><C>[1] * </C><A>list</A><C>[2]</C>. ## It must be guaranteed that no entry of <A>list</A><C>[2]</C> is ## divisible by the prime <M>p</M>. ## (Otherwise precision will get lost.) ## <P/> ## The third form creates a number in the family <A>extfam</A> of a ## <M>p</M>-adic extension. ## The second argument must be a list <A>list</A> of length two such that ## <A>list</A><C>[2]</C> is the list of coefficients w.r.t. the basis ## <M>\{ 1, \ldots, x^{{f-1}} \cdot y^{{e-1}} \}</M> of the extended ## <M>p</M>-adic field and <A>list</A><C>[1]</C> is a common <M>p</M>-part ## of all these coefficients. ## <P/> ## <M>p</M>-adic numbers admit the usual field operations. ## <Example><![CDATA[ ## gap> efam:=PadicExtensionNumberFamily(3, 5, [1,1,1], [1,1]);; ## gap> PadicNumber(efam,7/9); ## padic(120(3),0(3)) ## ]]></Example> ## <P/> ## <E>A word of warning:</E> ## <P/> ## Depending on the actual representation of quotients, precision may seem ## to <Q>vanish</Q>. ## For example in <C>PadicExtensionNumberFamily(3, 5, [1,1,1], [1,1])</C> ## the number <C>(1.2000, 0.1210)(3)</C> can be represented as ## <C>[ 0, [ 1.2000, 0.1210 ] ]</C> or as <C>[ -1, [ 12.000, 1.2100 ] ]</C> ## (here the coefficients have to be multiplied by <M>p^{{-1}}</M>). ## <P/> ## So there may be a number <C>(1.2, 2.2)(3)</C> which seems to have ## only two digits of precision instead of the declared 5. ## But internally the number is stored as <C>[ -3, [ 0.0012, 0.0022 ] ]</C> ## and so has in fact maximum precision. ## </Description> ## </ManSection> ## <#/GAPDoc> ##
DeclareOperation( "PadicNumber", [ IsPadicNumberFamily, IsObject ] );
############################################################################# ## #O ShiftedPadicNumber( <padic>, <int> ) ## ## <#GAPDoc Label="ShiftedPadicNumber"> ## <ManSection> ## <Oper Name="ShiftedPadicNumber" Arg='padic, int'/> ## ## <Description> ## <Ref Oper="ShiftedPadicNumber"/> takes a <M>p</M>-adic number ## <A>padic</A> and an integer <A>shift</A> ## and returns the <M>p</M>-adic number <M>c</M>, ## that is <A>padic</A> <C>*</C> <M>p</M><C>^</C><A>shift</A>. ## </Description> ## </ManSection> ## <#/GAPDoc> ##
DeclareOperation( "ShiftedPadicNumber", [ IsPadicNumber, IsInt ] );
############################################################################# ## #O PurePadicNumberFamily( <p>, <precision> ) ## ## <#GAPDoc Label="PurePadicNumberFamily"> ## <ManSection> ## <Func Name="PurePadicNumberFamily" Arg='p, precision'/> ## ## <Description> ## returns the family of pure <M>p</M>-adic numbers over the ## prime <A>p</A> with <A>precision</A> <Q>digits</Q>. That is to say, the approximate value ## will differ from the correct value by a multiple of <M>p^{digits}</M>. ## </Description> ## </ManSection> ## <#/GAPDoc> ##
DeclareGlobalFunction( "PurePadicNumberFamily" );
############################################################################# ## #F PadicExtensionNumberFamily( <p>, <precision>, <unram>, <ram> ) ## ## <#GAPDoc Label="PadicExtensionNumberFamily"> ## <ManSection> ## <Func Name="PadicExtensionNumberFamily" Arg='p, precision, unram, ram'/> ## ## <Description> ## An extended <M>p</M>-adic field <M>L</M> is given by two polynomials ## <M>h</M> and <M>g</M> with coefficient lists <A>unram</A> (for the ## unramified part) and <A>ram</A> (for the ramified part). ## Then <M>L</M> is isomorphic to <M>Q_p[x,y]/(h(x),g(y))</M>. ## <P/> ## This function takes the prime number <A>p</A> and the two coefficient ## lists <A>unram</A> and <A>ram</A> for the two polynomials. ## The polynomial given by the coefficients in <A>unram</A> must be a ## cyclotomic polynomial and the polynomial given by <A>ram</A> must be ## either an Eisenstein polynomial or <M>1+x</M>. ## <E>This is not checked by &GAP;.</E> ## <P/> ## Every number in <M>L</M> is represented as a coefficient list w. r. t. ## the basis <M>\{ 1, x, x^2, \ldots, y, xy, x^2 y, \ldots \}</M> ## of <M>L</M>. ## The integer <A>precision</A> is the number of <Q>digits</Q> that all the ## coefficients have. ## <P/> ## <E>A general comment:</E> ## <P/> ## The polynomials with which <Ref Func="PadicExtensionNumberFamily"/> is ## called define an extension of <M>Q_p</M>. ## It must be ensured that both polynomials are really irreducible over ## <M>Q_p</M>! ## For example <M>x^2+x+1</M> is <E>not</E> irreducible over <M>Q_p</M>. ## Therefore the <Q>extension</Q> ## <C>PadicExtensionNumberFamily(3, 4, [1,1,1], [1,1])</C> contains ## non-invertible <Q>pseudo-p-adic numbers</Q>. ## Conversely, if an <Q>extension</Q> contains noninvertible elements ## then one of the defining polynomials was not irreducible. ## </Description> ## </ManSection> ## <#/GAPDoc> ##
DeclareGlobalFunction( "PadicExtensionNumberFamily" );
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 und die Messung sind noch experimentell.