mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > YAFU

Reply
 
Thread Tools
Old 2021-08-25, 10:36   #1
James Heinrich
 
James Heinrich's Avatar
 
"James Heinrich"
May 2004
ex-Northern Ontario

E9516 Posts
Default pretest option minimum size

When I run through a set of numbers I want to factor I usually start with the -pretest option (to sift out the easy factorizations, I can continue the hard ones later), but sometimes yafu finds a small composite during ECM that could easily be factored in a few seconds but the pretest option prevents siqs from running. What I'd like to see is some option like "-pretest_threshold <digits>" where siqs is allowed to run on composites less than <digits> digits.
James Heinrich is offline   Reply With Quote
Old 2021-08-25, 13:34   #2
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

7·11·47 Posts
Default

Quote:
Originally Posted by James Heinrich View Post
When I run through a set of numbers I want to factor I usually start with the -pretest option (to sift out the easy factorizations, I can continue the hard ones later), but sometimes yafu finds a small composite during ECM that could easily be factored in a few seconds but the pretest option prevents siqs from running. What I'd like to see is some option like "-pretest_threshold <digits>" where siqs is allowed to run on composites less than <digits> digits.
Do those small composites get added to the list of numbers to factor later, or are they ignored and lost? Just want to clarify if this is a problem (as some numbers would be lost from a complete factorization), or an optimization/preference (just a desire to get these small ones done first).
bsquared is offline   Reply With Quote
Old 2021-08-25, 13:56   #3
James Heinrich
 
James Heinrich's Avatar
 
"James Heinrich"
May 2004
ex-Northern Ontario

3,733 Posts
Default

No, nothing is lost, I just want to get the small ones done first.

As a random example (edited for brevity):
Code:
Starting factorization of 14156161707358647804728644991232561131993674306133067594227858606703236064990613537256494257288902246641757583573171692305069299841687536
div: found prime factor = 2
div: found prime factor = 2
div: found prime factor = 2
div: found prime factor = 2
div: found prime factor = 3
div: found prime factor = 271
div: found prime factor = 1831
scheduled 30 curves at B1=2000 toward target pretesting depth of 43.00
prp13 = 2893511660873 (curve 4 stg2 B1=2000 sigma=303770396 thread=0)
Finished 4 curves using Lenstra ECM method on C129 input, B1=2K, B2=gmp-ecm default
Finished 26 curves using Lenstra ECM method on C117 input, B1=2K, B2=gmp-ecm default
Finished 74 curves using Lenstra ECM method on C117 input, B1=11K, B2=gmp-ecm default
Finished 216 curves using Lenstra ECM method on C117 input, B1=50K, B2=gmp-ecm default
pm1: starting B1 = 3750K, B2 = gmp-ecm default on C117
prp29 = 32895160657610218397548809017 (curve 40 stg2 B1=250000 sigma=303537196 thread=0)
Finished 240 curves using Lenstra ECM method on C117 input, B1=250K, B2=gmp-ecm default
prp28 = 3347338785154139067312669731 (curve 30 stg2 B1=250000 sigma=1688092289 thread=2)
Finished 180 curves using Lenstra ECM method on C88 input, B1=250K, B2=gmp-ecm default
final ECM pretested depth: 30.44
c61 cofactor = 1865476249140792141927330175598826930439956399426237147045167
Total factoring time = 90.5932 seconds
We end up with a c61 at the end which would take not even a second to to split into p30+p32, but with the pretest option enabled siqs can't run. I would like it to be allowed to run for "small" numbers (according to the parameter I specify) but not run for larger numbers (e.g. I'll come back and deal with those later, or on a different machine).
James Heinrich is offline   Reply With Quote
Old 2022-05-05, 15:30   #4
James Heinrich
 
James Heinrich's Avatar
 
"James Heinrich"
May 2004
ex-Northern Ontario

72258 Posts
Default

Just following up on this request -- is this likely to be included in an upcoming version?

Just in case my idea isn't clear, (my understanding of) the current logic is something crudely like:
Code:
while (ECM_LEVEL_T_LEVEL < UNFACTORED_DIGITS * ECM_RATIO) {
  doECMandPM1();
}
if (COFACTOR_IS_COMPOSITE) {
  if (OPTION_PRETEST) {
    // give up, output composite cofactor
  } else {
    doSIQSorNFS(COFACTOR);
  }
}
My suggestion is to change that last part to:
Code:
if (OPTION_PRETEST && (OPTION_PRETEST < UNFACTORED_DIGITS)) {
  // give up, output composite cofactor
} else {
  doSIQSorNFS(COFACTOR);
}
Such that when I specify -pretest it always gives up before SIQS (current behaviour), but if I specify -pretest 90 it will only output composites if they're larger than c90, smaller ones will be completely factored.

Does that make sense?
James Heinrich is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Estimating minimum relations bchaffin Factoring 24 2012-03-24 18:37
What is minimum RAM needed for 6 Core CPU for P-1? odin Hardware 15 2010-04-18 14:22
Minimum/desired CPU specs for ECM factoring Kaboom PrimeNet 10 2009-04-17 14:58
Msieve NFS minimum size 10metreh Msieve 35 2009-04-02 19:14
Minimum delay between server connections vaughan ElevenSmooth 5 2005-09-08 17:17

All times are UTC. The time now is 05:08.


Tue Jun 28 05:08:59 UTC 2022 up 75 days, 3:10, 1 user, load averages: 1.09, 1.05, 1.09

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.

≠ ± ∓ ÷ × · − √ ‰ ⊗ ⊕ ⊖ ⊘ ⊙ ≤ ≥ ≦ ≧ ≨ ≩ ≺ ≻ ≼ ≽ ⊏ ⊐ ⊑ ⊒ ² ³ °
∠ ∟ ° ≅ ~ ‖ ⟂ ⫛
≡ ≜ ≈ ∝ ∞ ≪ ≫ ⌊⌋ ⌈⌉ ∘ ∏ ∐ ∑ ∧ ∨ ∩ ∪ ⨀ ⊕ ⊗ 𝖕 𝖖 𝖗 ⊲ ⊳
∅ ∖ ∁ ↦ ↣ ∩ ∪ ⊆ ⊂ ⊄ ⊊ ⊇ ⊃ ⊅ ⊋ ⊖ ∈ ∉ ∋ ∌ ℕ ℤ ℚ ℝ ℂ ℵ ℶ ℷ ℸ 𝓟
¬ ∨ ∧ ⊕ → ← ⇒ ⇐ ⇔ ∀ ∃ ∄ ∴ ∵ ⊤ ⊥ ⊢ ⊨ ⫤ ⊣ … ⋯ ⋮ ⋰ ⋱
∫ ∬ ∭ ∮ ∯ ∰ ∇ ∆ δ ∂ ℱ ℒ ℓ
𝛢𝛼 𝛣𝛽 𝛤𝛾 𝛥𝛿 𝛦𝜀𝜖 𝛧𝜁 𝛨𝜂 𝛩𝜃𝜗 𝛪𝜄 𝛫𝜅 𝛬𝜆 𝛭𝜇 𝛮𝜈 𝛯𝜉 𝛰𝜊 𝛱𝜋 𝛲𝜌 𝛴𝜎𝜍 𝛵𝜏 𝛶𝜐 𝛷𝜙𝜑 𝛸𝜒 𝛹𝜓 𝛺𝜔