Re: t_PADIC to t_INTMOD and use of chinese()

Karim Belabas <[email protected]>
Newsgroups gmane.comp.mathematics.pari.user
Message-ID <[email protected]>
* Karim Belabas [2025-02-14 15:31]:
> * Max Alekseyev [2025-02-14 15:09]:
> > dueHello,
> > 
> > I have a couple of requests:
> > 
> > 1) An easy way to convert t_PADIC to t_INTMOD, maybe extending Mod() to
> > support a single argument of type t_PADIC, e.g. Mod(1 + O(5^2)) would
> > produce Mod(1, 25).
> 
>   padic2mod(x) = Mod(x, x.p^padicprec(x, x.p));

Not sure about making this one built-in as Mod(x), but easy to do.

It could just as easily work recursively for polynomials, series, vectors,
matrices as well (we couldn't then extend to the comparatively less
useful Mod(x + O(x^2)) -> Mod(x, x^2))

But what would be the use cases ?

I would expect that the user would know the p-adic accuracy and just use
Mod(x, p^d) for the right d (which would also work recursively, compared
to my padic2mod which requires x to be a t_PADIC in order to determine a
proper d)

> > 2) Extend chinese() to support t_PADIC arguments (still producing t_INTMOD).
> 
>   padicchinese(v) = chinese(apply(padic2mod, v))
> 
>   ? padicchinese([1 + O(5^2), 3 + O(3^3)])
>   %3 = Mod(651, 675)

This one is now built-in in the 'master' branch: t_PADICs and t_INTMODs
can be used interchangeably.

    ? chinese(1 + O(5^2), 3 + O(3^3))
    %1 = Mod(651, 675)

    ? chinese((1+O(7)) * (x+1), Mod(x^2+1, 5))
    %2 = Mod(21, 35)*x^2 + Mod(15, 35)*x + Mod(1, 35)

    ? H = mathilbert(3); chinese(H * (1 + O(7^2)), Mod(H, 11))
    %3 = 
    [  Mod(1, 539) Mod(270, 539) Mod(180, 539)]

    [Mod(270, 539) Mod(180, 539) Mod(135, 539)]

    [Mod(180, 539) Mod(135, 539) Mod(108, 539)]

Cheers,

    K.B.
-- 
Pr. Karim Belabas, U. Bordeaux, Vice-président en charge du Numérique
Institut de Mathématiques de Bordeaux UMR 5251 - (+33) 05 40 00 29 77
http://www.math.u-bordeaux.fr/~kbelabas/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.