Karim Belabas on Thu, 26 Oct 2023 00:55:35 +0200
|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Polynomials with integer roots
|
- To: Andreas Enge <andreas.enge@inria.fr>
- Subject: Re: Polynomials with integer roots
- From: Karim Belabas <Karim.Belabas@u-bordeaux.fr>
- Date: Thu, 26 Oct 2023 00:55:27 +0200
- Arc-authentication-results: i=1; smail; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; d=math.u-bordeaux.fr; s=openarc; t=1698274529; c=relaxed/relaxed; bh=xGvpQq2yvBBrWsRqVksp5bAJUlNxQrORCPZJ6nN6yB8=; h=Date:From:To:Cc:Subject:Message-ID:Mail-Followup-To:References: MIME-Version:Content-Type:Content-Disposition: Content-Transfer-Encoding:In-Reply-To; b=HuAhFbR9D/bjROJ+OOPeFXVytsM3W/4kBzUEB661hxzO/ySecqoi6s1SERyJ28ISk+c3ZrFzMxp8XPaQPGncjfW6jkYGz3j6BYTYU71zjmng0aVSbwdSP6li9e/Uv2lMQG2T9izfz+x0lxxQAodBbmSA2b98sg6TPQq1p3MuJ0Fch+xUtgLQLTJgv43PT3EAF8ZxbeHtZrYHTn9zWWyB72RLXG0xdPI0zGXT/gIxgKnRFC0sU/CyojLQDNY8gWyTrU6xGd89v21GdUImOH9/AYJ846E2X+3FOqayFXsjwg5Km3yRcRwWYE/yYmyZnd650c8BDASsdF8r2uksV66VscxS7OBHo4yLGdQzZhc8v2vtoeXkqEEPSoFjw6jwoo7UVEbWdoK7Q7H+q8pbCyA48sdZcIFUToX/F0h/SVIOSUiXU+g4cKSvk3vk7nRlxXUlvvakZovLLSVi07yssKfgnY4fqJJd6g4JbMhQxt34RGbjpUvD0lzzB9mZ2sMF1RCm/o7Yd+1GDH4ZbVI3yrp9YgX4R7tyvmFQyg5UuuKTpayoCnXdNh5G6STtQtnVnJNJnDAFODEZzSefEkoEGbojy/BfsWETITYRzURZ0v/faPw8P/kS97g9CG30bsFHkGjyTCYSU2oSyeCCzbG0kALzqYM8r2Hu8JVhwFc1GDZ6rBk=
- Arc-seal: i=1; a=rsa-sha256; d=math.u-bordeaux.fr; s=openarc; t=1698274529; cv=none; b=VjW64ej9Mg0TF0fGWPDFCSEszMXOqhj9ss2E6iTh6slzingJHouv8U2bMWeHx71etu6hbGPxdDTNPl8x3LzBqXOQNnIqkIAPAr6vlcFET5q0258St38XygBogsCQYo84eYQOx8WO3h4/4kDJDp93vdTkTRdwMkw3QkfrRnAxjbSsvWnpqFMvhw525rqkP2u09XToBlSERcXPuofZ7lgbWDgodU9XWW25Q70fd7ZBVRzP4jWyTeUdd7Gnpv/rNXH6vGKlWn1Kp6Cd7GHYD5cqrtPaJOxxdre/XCT3cGQljkOhhdySRvMLa06MILWZJI49olqgU+A9b1a//Yb8IWlGl+ZLtomrtbsKvg6YCdjMqKp/h9J5004aYwFZF3o05l10DJ/TVl8Qu16dmCHjHUxrmtP9wVCmFFiojCTcty90sVVhHNpjiXWwTZjfwy7Qyca8gM1qoy1PmxIMlvEaOhi06Tf8e6may97zetb8cSaDX+lzWaIs0gs/CqFxars39JnvnLAv8aQ//qaBSznqaVqLlYmsYFWBuJJGFkoAuRLLRHIdCNPGQuQtN0A33yewuHGozg8qbQKovlQEvTzB0ErXzMvMwzL+r7yboxrRP2NVyqumvAKvqElDnD3C/Hkuf3lasYjkjWvXCYAB1J5FoOWjb3z3NwBetPFAM189quQkgVg=
- Authentication-results: smail; dmarc=none header.from=u-bordeaux.fr
- Authentication-results: smail; arc=none
- Cc: Gordon Royle <gordon.royle@uwa.edu.au>, "pari-users@pari.math.u-bordeaux.fr" <pari-users@pari.math.u-bordeaux.fr>
- Delivery-date: Thu, 26 Oct 2023 00:55:35 +0200
- In-reply-to: <ZTjcSr0lM7EI3iJS@jurong>
- Mail-followup-to: Andreas Enge <andreas.enge@inria.fr>, Gordon Royle <gordon.royle@uwa.edu.au>, "pari-users@pari.math.u-bordeaux.fr" <pari-users@pari.math.u-bordeaux.fr>
- References: <MEYPR01MB7087A095EFA3015D0BA6CDF8A5DEA@MEYPR01MB7087.ausprd01.prod.outlook.com> <ZTjRV2KfgEqQRdG9@math.u-bordeaux.fr> <ZTjcSr0lM7EI3iJS@jurong>
* Andreas Enge [2023-10-25 11:13]:
> Am Wed, Oct 25, 2023 at 10:27:03AM +0200 schrieb Karim Belabas:
> > Say the list is contained in vector L. Here's the simplest way.
> > [ T | T <- L, #nfroots(,T) == poldegree(T) ]
>
> As I understand it, this requires the polynomials to be square-free,
> so multiple roots should be handled separately first.
You are right, I forgot about multiplicities. One should ensure that all
polynomials are squarefree to begin with, something like T /= gcd(T,T')
Here's an updated (still naive) solution, without the squarefreeness
assumption:
OKpol(T) = my(t = T/gcd(T,T')); #nfroots(,t) == poldegree(t);
[ T | T <- L, OKpol(T) ]
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/