John Cremona on Fri, 23 Jan 2026 10:20:03 +0100


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

Re: polred and variants


On Thu, 22 Jan 2026 at 21:42, Bill Allombert
<Bill.Allombert@math.u-bordeaux.fr> wrote:
>
> On Thu, Jan 22, 2026 at 09:18:59PM +0000, John Cremona wrote:
> > Thanks Karim,
> >
> > You answered all my questions.  (I do understand the difference
> > between | and ||, that was just a slip.) I'm not even sure that I need
> > the ring of integers.   (The fields in question are the Hecke
> > eigenvalue fields of Bianchi modular forms, by the way).
> >
> > When I searched through the pdf manual I did not notice that I reached
> > a section on obsolete functions (yes, I see that the section heading
> > is on the same page...).  But it is still true that there is no
> > documentation in this manual for any non-obsolete *polred* functions.
>
> The libpari manual is meant as a supplement to the User manual, not
> as a standalone document.

OK! I will have both open and look in both.


> If you like more documentation on the spirit of PARI programming,
> I can point you to this webpage
> <https://pari.math.u-bordeaux.fr/Events/LIBPARI2025/>

Sorry I was not there!


> and in particular to
> "A brutal introduction to libpari programming"
> <https://pari.math.u-bordeaux.fr/Events/LIBPARI2025/talks/intro.pdf>
> which introduce the new gc_* gerepile replacement.

Thanks a lot for that talk and slides, which I had already found very
useful for the section on polynomials.  But I had not read as far as
the gc_* functions, my fault.

My use of libpari is very localised, I just have some functions which
convert to/from my own types or classes (in C++) and functions which
convert, apply some libpari functions, and convert back. Each of these
functions has a statement "pari_sp av = avma;" at the top and " avma =
av;" before returning, with no libpari objects remaining in scope
outside that block.

In eclib (my C++ library) I only used libpari for integer
factorization and for ellap().  In my Bianchi code I am using it for
polredabs() only; I did also use it for HNF and SNF of integer
matrices, but I no longer use that code since I use instead some gp
functions from Aurel which use his new sparse SNF code.
(Incidentally, is that yet in the main lari branch?  I am maintaining
a separate version based on a branch called aurel-amt which I just saw
is at a commit dated 19 July 2021. But I finished my computations with
that branch a year ago anyway.)

John

>
> Cheers,
> Bill.
>