Since the link I posted before can not be accessed here is a copy and paste
version of the sage terminal session.

sage: from sage.libs.libecm import ecmfactor
sage: ecmfactor(121, 1.0)
(True, 121)
sage: ecmfactor(121, 1)
(True, 121)
sage: ecmfactor(121, 1.0)
(True, 11)
sage: ecmfactor(121, 1.0)
(True, 121)
sage: ecmfactor(121, 0)
(True, 121)
sage: ecmfactor(121, 0.0)
(True, 11)
sage: ecmfactor(121, 0.0)
(True, 11)
sage: ecmfactor(121, 0.0)
(True, 121)


On Friday, January 31, 2014 12:05:46 AM UTC+5:30, Ondřej Čertík wrote:
>
> Hi, 
>
> What is the state of the art library for factoring integers? 
> I was under the impression, that it is the GCM-ECM library 
> (http://ecm.gforge.inria.fr/). 
>
> I've been trying to use ECM and I noticed the following behavior: 
>
> sage: from sage.libs.libecm import ecmfactor 
> sage: N = 121 
> sage: factor(N) 
> 11^2 
> sage: ecmfactor(N, 1) 
> (True, 121) 
> sage: ecmfactor(N, 100) 
> (True, 121) 
> sage: ecmfactor(N, 200) 
> (True, 121) 
> sage: ecmfactor(N, 0) 
> (True, 121) 
> sage: ecmfactor(N, 0.) 
> (True, 11) 
>
>
> In other words, it never finds the factor 11, unless you give it B1=0.0 
>
> Compared to N=122, where it always finds it: 
>
> sage: N = 122 
> sage: factor(N) 
> 2 * 61 
> sage: ecmfactor(N, 1) 
> (True, 2) 
> sage: ecmfactor(N, 100) 
> (True, 2) 
> sage: ecmfactor(N, 200) 
> (True, 2) 
>
>
> I have a few questions: 
>
> * Does this mean that ECM only works sometimes? 
> * Is there a parameter B1, that always works? 
>
> In the README file of the ecm-6.4.4 package, I found: 
>
>        digits D  optimal B1   default B2           expected curves 
>                                                        N(B1,B2,D) 
>                                               -power 1         default 
> poly 
>           20       11e3         1.9e6             74               74 
> [x^1] 
>           25        5e4         1.3e7            221              214 
> [x^2] 
>           30       25e4         1.3e8            453              430 
> [D(3)] 
>           35        1e6         1.0e9            984              904 
> [D(6)] 
>           40        3e6         5.7e9           2541             2350 
> [D(6)] 
>           45       11e6        3.5e10           4949             4480 
> [D(12)] 
>           50       43e6        2.4e11           8266             7553 
> [D(12)] 
>           55       11e7        7.8e11          20158            17769 
> [D(30)] 
>           60       26e7        3.2e12          47173            42017 
> [D(30)] 
>           65       85e7        1.6e13          77666            69408 
> [D(30)] 
>
>           Table 1: optimal B1 and expected number of curves to find a 
>           factor of D digits with GMP-ECM. 
>
> The only documentation about ECM that I found in Sage is this: 
>
> http://www.sagemath.org/doc/bordeaux_2008/integer_factorization.html 
> http://www.sagemath.org/doc/reference/libs/sage/libs/libecm.html 
>
> But it doesn't answer my questions above. 
> If the answer is that ECM only works sometimes, but it's not a 
> reliable way to factor integers, what is the fastest library that 
> always works? 
>
> Many thanks, 
> Ondrej 
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to