Karim Belabas on Sat, 12 Oct 2024 17:59:36 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: computing all square root modulo a composite |
* Bill Allombert [2024-10-12 17:51]: > On Sat, Oct 12, 2024 at 05:41:06PM +0200, Karim Belabas wrote: > > * Max Alekseyev [2024-10-12 16:50]: > > > On Tue, Oct 1, 2024 at 4:56 AM Bill Allombert < > > > Bill.Allombert@math.u-bordeaux.fr> wrote: > > > > > > > > > > > Internally, we have a function Zn_quad_roots that compute all the solution > > > > of x^2+b*x+c mod N > > > > for composite N. > > > > Maybe we could add it to GP if we find a GP interface to it. > > > > > > > > > > > Bill, I'd truly appreciate having such a function. > > > > You have it already: > > > > install(Zn_quad_roots, GGG) > > Zn_quad_roots([N, factor(N)], 0, -B) > > > > should output all square roots of B mod N. (Didn't test :-) > > Of course, [N, factor(N)] should be precomputed. > > Indeed, but my question was: > Could you suggest a GP interface for it ? No time for this today, already spent too much time with email. The "natural" interface is going to be painful / awkward (take a general quadratic polynomial as input); I don't think I want to do this ... Be my guest. :-) The easiest solution (and most sensible IMHO) would be to simply provide a Zn_quad_roots0 libpari wrapper that one could safely install, returning 0 or [] (or any sentinel value) instead of NULL. Then people could install and play with it in GP. > (even the C interface is strange, N should be last). Agreed. 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/