Laël Cellier on Mon, 02 Jun 2025 16:48:00 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Reimplementing the cubic sieve faster |
When picking a triplet such a+b+c=0, do you mean picking mod p ? Sorry for having problems to understand how cubic sieve works… Le 02/06/2025 à 14:56, Bill Allombert a écrit :
On Mon, Jun 02, 2025 at 11:44:12AM +0200, Laël Cellier wrote:Bonjour, as you know, the cubic sieve already exist in Pari‑ɢᴘ, but as far I understand, it lacks the improvement of https://www.sciencedirect.com/science/article/pii/S0747717113001703 for computing the initial cubic sieve congruence far more faster.The cubic sieve is implemented in PARI for F_p^n for small p and not for F_p for large p. In PARI case, there is no need to search for initial cubic sieve congruence.A part of the problem, is I fail to understand how to implement the main algorithm in any language (which of course include pari/ɢᴘ). Would it be possible to get help for understanding how exactly to perform the sieving and relation collection steps ? My use case would be on prime fields…Start with x^3 = y^2*z mod p with x,y and z of size (p^(1/3)) Add to you factor basis all the elements (x+y*a) for all very small 'a'. Now pick a triplet (a,b,c) such that a+b+c=0. It follows (x+a*y)*(x+b*y)*(x+c*y) = x^3 + (a*b+a*c+a*c)*y^2*x + a*b*c*y^3 (x+a*y)*(x+b*y)*(x+c*y) = y^2*z + (a*b+a*c+a*c)*y^2*x + a*b*c*y^3 mod p = y^2*(z+ (a*b+a*c+a*c)*x + a*b*c*y) mod p Thus we get a non-trivial factorization of (x+a*y)*(x+b*y)*(x+c*y) over the factor basis as soon as we find a factorization of z+(a*b+a*c+a*c)*x+a*b*c*y over the factor basis. Since a,b,c are very small and x,y,z are of size p^(1/3) z+(a*b+a*c+a*c)*x+a*b*c*y is of size p^(1/3) The point is that a number of size p^(1/3) is much more likely to be smooth than a number of size p^(1/2) as used by the quadratic sieve. Cheers, Bill.