John Cremona on Sat, 02 Feb 2008 10:49:37 +0100

 Re: idealappr()

• To: pari-users <pari-users@list.cr.yp.to>
• Subject: Re: idealappr()
• From: "John Cremona" <john.cremona@gmail.com>
• Date: Sat, 2 Feb 2008 09:47:51 +0000
• Delivery-date: Sat, 02 Feb 2008 10:49:37 +0100
• Mailing-list: contact pari-users-help@list.cr.yp.to; run by ezmlm
• References: <158627b90801281900l31d85afcu5f8f948501069b79@mail.gmail.com> <20080201214819.GA6842@math.u-bordeaux1.fr>

```Dear Karim,

Thanks for the quick reply.  [3 days for me to remember that Dan
Bernstein's qsecretary response gets put into spam by gmail an find it

As you know, the number field functionality in Sage is based on the
pari library.  In Sage, the function uniformizer() uses isappr but was
not documented, so I was adding documentation and this led me to the
question.  I'm not the one who designed the number fields in Sage, so
I am not sure when it uses nfinit() and when bnfinit().  I was only in
that code because I found a different bug and had to fix it.  I think
it only uses bnfinit() when a function is called which needs it;  but
it would be reasonable for uniformizer() to be such a function.

Thanks again,

John

On 01/02/2008, Karim Belabas <Karim.Belabas@math.u-bordeaux1.fr> wrote:
> * John Cremona [2008-02-01 22:15]:
> > The documentation for idealappr(K,P) implies that in the case that P a
> > prime ideal in the number  field K, the element returned will be a
> > uniformizer for P and integral.
>
> True.
>
> [ P.gen[2] is another "simpler" way to get a uniformizer ]
>
> > Will it always be a generator for P when P is principal (as it might
> > then be)
>
> No.
>
> > If the latter, would it be relatively expensive to call
> > bnfisprincipal() to ensure that we have a generator when it exists?
>
> It's actually impossible: the argument to idealappr is an nf and
> not a bnf, which would be required for bnfisprincipal (idealappr is a
> rather trivial function, especially if the input is a prime ideal; it is
> *much* simpler than bnfinit + bnfisprincipal !).
>
> One could check whether the input is in fact a bnf, then test whether P
> is principal, and if so compute a generator; but it would complicate a
> simple function for a rather limited use.
>
> What's wrong with calling directly bnfisprincipal ? [ it will actually
> produce a "uniformizer" for any ideal, not necessarily a prime; and
> bypass a useless idealappr call ]
>
> What is your specific application ?
>
> Cheers,
>
>     K.B.
> --
> Karim Belabas                  Tel: (+33) (0)5 40 00 26 17
> Universite Bordeaux 1          Fax: (+33) (0)5 40 00 69 50
> 351, cours de la Liberation    http://www.math.u-bordeaux.fr/~belabas/
> F-33405 Talence (France)       http://pari.math.u-bordeaux.fr/  [PARI/GP]
> `
>

--
John Cremona

```

• References:
• idealappr()
• From: "John Cremona" <john.cremona@gmail.com>
• Re: idealappr()
• From: Karim Belabas <Karim.Belabas@math.u-bordeaux1.fr>