John Cremona on Wed, 09 Dec 2020 15:13:40 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: muldep


Hello Denis,

As a first step, using only gcds you can extract from your x_i a list
of integers p_i which are mutually coprime -- but not necessarily
prime -- so that each x_i is a product of powers of the p_i.  There is
a name for that process, which I forget.  Then your problem  becomes
one of finding the kernel of an integer matrix, which you know how to
do.  I was thinking of the x_i as being integers, but just apply this
to the list of all numerators and denominators.

Sorry, I do not have code for this.

I do something similar in Lemma 2.5 of my paper on solving rational
conics (see https://johncremona.github.io/papers/conics.pdf for a
preprint, or https://www.ams.org/journals/mcom/2003-72-243/S0025-5718-02-01480-1/home.html).

John

On Wed, 9 Dec 2020 at 13:30, Denis Simon <denis.simon@unicaen.fr> wrote:
>
> Dear pari users,
>
> I would like to write a GP code for the following question, but if someone already has a code, it would be very helpful:
>
> given a vector X = [x1,...,xn] of nonzero rational numbers ("t_FRAC")
> compute a Z-basis of the set of vectorvs e = [e1,...,en]~ of integers ("t_INT")
> such that x1^e1 * ... * xn^en = 1.
> Following the general taxonomy in GP, this function could be named "muldep()".
>
> For efficiency reasons, I would be happy with a function that performs no factorization.
>
> More generally, I need a function "nfmuldep()" that does the same work when X = [x1,...,xn]
> contains nonzero elements of a given number field nf.
>
> Thanks in advance,
> Denis SIMON.
>
>
>