flintlib/flint

`fmpz_poly_is_squarefree` wrong results?

Opened this issue · 4 comments

It indicates that 4x is square-free, but that doesn't agree with its documentation, which states

Returns whether the polynomial poly is square-free. A non-zero polynomial is defined to be square-free if it has no non-unit square factors. We also define the zero polynomial to be square-free.

See also Nemocas/Nemo.jl#1742 and Nemocas/Nemo.jl#1311

A change to something like

Returns whether the polynomial poly is square-free. A non-zero polynomial is defined to be square-free if its factorisation contains no non-constant square factors. We also define the zero polynomial to be square-free.

would work, right?

Thank you. That would at least clarify that it deviates from the usual mathematical definition. Perhaps it could be made even more explicitly by in addition inserting something like this:

This differs somewhat from the usual definition, e.g. we consider the polynomial 4x in Z[x] as square-free.

thofma commented

Or just write, that it returns whether poly is squarefree as a polynomial over the rationals.

That or just say it doesn't double roots over the complex numbers