       Re: Algebraic Integers

• To: mathgroup at smc.vnet.net
• Subject: [mg28519] Re: [mg28504] Algebraic Integers
• From: Ken Levasseur <Kenneth_Levasseur at uml.edu>
• Date: Tue, 24 Apr 2001 01:48:53 -0400 (EDT)
• References: <200104230103.VAA03947@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Konstantin:

Do you want to base your ordering on the norm of the algebraic integers?  If so, the following
code is something I recently wrote up for a colleague.  It's a bit rough, but you might want to
try something like this:

We will base all norms on this function.  Assume f is an algebraic integer, p is the minimal
polynomial and cRule is the conjugation rule.   The indeterminate variable can by anything you
choose as long as you're consistant. I use x for Z[i],  \[Omega] for the Eisenstein extension, and
r for Z[Sqrt[K]].   I'm sure the programming could be improved, and extensions with more
complicated conjugates would need a different structure.

GNorm[f_, p_, cRule_] := PolynomialMod[Expand[f * (f /. cRule)], p]

\!\(GaussianNorm[f_] := GNorm[f, x\^2 + 1, x -> \(-x\)]\)

GaussianNorm[a + b x]

\!\(GaussianNorm[\((a + b\ x)\)\^2]\)

\!\(TraditionalForm\`a\^4 + 2\ b\^2\ a\^2 + b\^4\)

\!\(Factor[GaussianNorm[\((a + b\ x)\)\^2]]\)

Eisenstein Norm
In:=
\!\(EisensteinNorm[f_] :=
GNorm[f, \ \[Omega]\^2 + \[Omega] + 1, \ \[Omega] -> \[Omega]\^2]\)

In:=
EisensteinNorm[a + \[Omega] b]

Out=
\!\(TraditionalForm\`a\^2 - b\ a + b\^2\)

In:=
RootKNorm[f_, K_:2] := GNorm[f, r^2 - K, r -> -r]

In:=
RootKNorm[a + b r, K]

Out=

Ken Levasseur
Math Sciences
UMass Lowell

Konstantin L Kouptsov wrote:

> I am doing the algebraic manipulations with the numbers a+b*p, where a,b are integers
> and p is essentially the irrational number (say Sqrt). There is a number of rules allowing
> manipulation of the numbers without referring to the value of p (for example: p/: 1/p=p/2;)
> I want function Min[] to calculate the minimum of the set of algebraic integers (a+b*p) the way
> it works for ordinary numbers, but giving the answer in algebraic form:
>
> In:= Min[3 p - 2, 5 p - 4]
> Out:= 3 p -2
>
> Is there any _elegant_ solution for this problem?

```

• Prev by Date: Re: ListPlot with row vectors
• Next by Date: RE: Two questions concerning ListDensityPlot ...
• Previous by thread: Algebraic Integers
• Next by thread: Re: Algebraic Integers