mersenneforum.org  

Go Back   mersenneforum.org > Great Internet Mersenne Prime Search > Software

Reply
 
Thread Tools
Old 2022-08-14, 19:59   #34
ewmayer
2ω=0
 
ewmayer's Avatar
 
Sep 2002
República de California

2·32·653 Posts
Default

Thanks, James- Bug confirmed. Mactor builds are officially unsupported, but I do try to fix any obvious bugs found by users.

This one is a stray info-print in a special bit of remain-factor-candidates-processing cleanup code at the end of each distinct (factor-k mod 60) small-prime-sieve bitmap. The "strayness" is exemplified by its using a different format than the other 2 factor-found prints in this run. The true factor it's supposed to be reporting is the one with k = 16336135, i.e. it should be just redundantly printing that, but is reporting the current-sieve-k rather than the k corresponding to the factor.

Not going to cut an updated Mlucas v20 current-release for this, but will post a patched factor.c once I've tested the fix, for the handful of folks using Mfactor to use until v21 appears.

A few months ago fellow forumite tdulcet sent me a snip of bash-script code which would allow the makemake.sh build script to optionally build Mfactor, I plan to include that in v21 - Mfactor will remain officially unsupported, but will at least be easier to build.
ewmayer is offline   Reply With Quote
Old 2022-08-31, 10:50   #35
ramgeis
 
ramgeis's Avatar
 
Apr 2013

2×59 Posts
Default

I stumbled upon an issue while checking a specific exponent. When I call
Mfactor-base-1w.exe -bmin 72 -bmax 73 -m 6176327099 1>> output1.log 2>> output2.log
it seems to end up in an endless loop after some iterations. It keeps on printing the same line over and over again.

output1.log:
Code:
mfactor v2020-03-05
INFO: testing qfloat routines...
CPU Family = x86_64, OS = Linux, 64-bit Version, compiled with Gnu C [or other compatible], Version 8.2.0.
INFO: CPU supports SSE2 instruction set, but using scalar floating-point build.
INFO: Using inline-macro form of MUL_LOHI64.
INFO: MLUCAS_PATH is set to ""
Setting DAT_BITS = 10, PAD_BITS = 2
INFO: testing IMUL routines...
Mfactor build flags:
TRYQ = 4
NUM_SIEVING_PRIME = 100000
TF_CLASSES = 60
MULH64_FAST = true
FACTOR_STANDALONE = true
NOBRANCH = true
USE_128x96 = 1
Mfactor self-tests:
Base-2 PRP test of M127 passed: Time = 00:00:00.000
Base-2 PRP test of M607 passed: Time = 00:00:00.000
Base-3 PRP test of M607 passed: Time = 00:00:00.000
Base-2 PRP test of M4423 passed: Time = 00:00:00.078
Base-3 PRP test of M4423 passed: Time = 00:00:00.250
Testing 64-bit Fermat factors...
Testing 128-bit Fermat factors...
Testing 192-bit Fermat factors...
Testing 256-bit Fermat factors...
Testing > 256-bit Fermat factors...
Testing 63-bit factors...
Testing 64-bit factors...
Testing 65-bit factors...
Testing 96-bit factors...
Factoring self-tests completed successfully.
Allocated 255255 words in master template, 4255 in per-pass bit_map [16 x that in bit_atlas]
Using first 100000 odd primes; max gap = 114
max sieving prime = 1299721
2949120 ones bits of 16336320 in master sieve template.
TRYQ = 4, max sieving prime = 1299721
Time to set up sieve = 00:00:00.031
pass = 0.......................................................................................................................................................................................
pass = 1.......................................................................................................................................................................................
pass = 2.......................................................................................................................................................................................
pass = 3.......................................................................................................................................................................................
pass = 4.......................................................................................................................................................................................
pass = 5......................................................
    Factor with k = 494106167961. This factor is composite - checking if any previously-found ones divide it...

    Factor with k = 494106167961. This factor is composite - checking if any previously-found ones divide it...

    Factor with k = 494106167961. This factor is composite - checking if any previously-found ones divide it...

    Factor with k = 494106167961. This factor is composite - checking if any previously-found ones divide it...

    Factor with k = 494106167961. This factor is composite - checking if any previously-found ones divide it...

    Factor with k = 494106167961. This factor is composite - checking if any previously-found ones divide it...

[...]
output2.log:
Code:
'printf' is not recognized as an internal or external command,
operable program or batch file.
INFO: using 64-bit-significand form of floating-double rounding constant for scalar-mode DNINT emulation.
Apr2015 mi64_div quicktest passes.
mi64_div quicktest passes.
INFO: No factoring savefile t6176327099 found ... starting from scratch.
Generating difference table of first 100000 small primes
Searching in the interval k=[382286224320, 764605121280], i.e. q=[4.722250e+021, 9.444903e+021]
Each of  16 (p mod 60) passes will consist of 23403 intervals of length 272272
[k = 409237424341][k = 436187740561][k = 463138459381][k = 490090954681][k = 517043588881][k = 543996232861][k = 570947407741][k = 597899610601][k = 624851548201][k = 651803354821][k = 678754011541][k = 705702225781][k = 732651902161][k = 759601207861][k = 409239024964][k = 436191429484][k = 463145996824][k = 490101635524][k = 517054289044][k = 544003926844][k = 570955488124][k = 597905540944][k = 624855645604][k = 651808324804][k = 678757463104][k = 705706716484][k = 732660207364][k = 759611479564][k = 409240161369][k = 436190929389][k = 463145407149][k = 490095819429][k = 517048200189][k = 544002870549][k = 570955169049][k = 597908948949][k = 624859859469][k = 651807730749][k = 678760485609][k = 705709333269][k = 732658356909][k = 759610006989][k = 409236413352][k = 436188223212][k = 463138187412][k = 490087578432][k = 517043720172][k = 543996816132][k = 570949002372][k = 597901130772][k = 624856518252][k = 651806338212][k = 678757400052][k = 705708928932][k = 732659709492][k = 759606807372][k = 409240081996][k = 436190623636][k = 463143119356][k = 490095574876][k = 517048509136][k = 543998223616][k = 570946406836][k = 597899223556][k = 624849539896][k = 651800948476][k = 678751432096][k = 705698883436][k = 732650180776][k = 759601314856][k = 409236472461][k = 436187675421][k = 463140925761][k = 490093762581]^C
ramgeis is offline   Reply With Quote
Old 2022-08-31, 23:32   #36
ewmayer
2ω=0
 
ewmayer's Avatar
 
Sep 2002
República de California

1175410 Posts
Default

@ramgeis:
Thanks for the bug report - oo loop bug confirmed. Here is the repeated print as it appears in the current v21 dev-code branch, where I am planning to release an updated factor.c source along with Mfactor-build support in the main Mlucas auto-build script:

Composite Factor found: q = 6103522629921139750279; checking if any previously-found ones divide it...

The current factor.c code - again, this was never tested the way the Mlucas production-use cade is - implicitly assumes a run from scratch (-bmin = 0) in the composite-factor-handling code section in question. For this exponent, a shallower run from scratch to 64 bits finds no fewer than 8 prime factors, including the two making up the above composite q:
Code:
./Mfactor -bmin 0 -bmax 64 -m 6176327099
Pass 0: 
	Factor found: q = 12352654199 = 2*p*k + 1 with k = 1. This factor is a probable prime.
	Factor found: q = 118039258284818639 = 2*p*k + 1 with k = 9555781. This factor is a probable prime.
Pass 1: 
	Factor found: q = 1531729120553 = 2*p*k + 1 with k = 124. This factor is a probable prime.
Pass 2: 
	Factor found: q = 13963551479306983 = 2*p*k + 1 with k = 1130409. This factor is a probable prime.
Pass 3: 
Pass 4: 
Pass 5: 
Pass 6: 
Pass 7: 
Pass 8: 
Pass 9: 
	Factor found: q = 1347884568123167 = 2*p*k + 1 with k = 109117. This factor is a probable prime.
Pass 10: 
	Factor found: q = 494106167921 = 2*p*k + 1 with k = 40. This factor is a probable prime.
Pass 11: 
Pass 12: 
Pass 13: 
Pass 14: 
	Factor found: q = 5810651476776607 = 2*p*k + 1 with k = 470397. This factor is a probable prime.
	Factor found: q = 343588792406323447 = 2*p*k + 1 with k = 27814977. This factor is a probable prime.
Pass 15: 
M(6176327099) has 8 factors in range k = [0, 1502941440], passes 0-15
Performed 60106825 trial divides
Clocks = 00:00:24.502
I've fixed the composite-factor-handling code in my v21 dev-code. That release will also restore TF-checkpointing, at least for single-threaded runs ... for your own work, easiest should be to restart wit same params but add '-passmin 6'. That will miss the rest of pass 5; if you want to also cover that, you can use that the composite factor q = 6103522629921139750279 has log2(q) = 72.370132... and run the rest of that pass using flags '-bmin 72.371 -bmax 73 -m 6176327099 -passmin 5 -passmax 5'. Yes, it's a fugly workaround. :)
ewmayer is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Official Ernst (ewmayer) / Richard (cheesehead) feud thread cheesehead Soap Box 50 2014-06-30 01:06
Official "Ernst is a deceiving bully and George is a meanie" thread cheesehead Soap Box 61 2013-06-11 04:30
Running Mfactor M0CZY LMH > 100M 2 2011-02-23 11:48
Mfactor sieve code thread ewmayer Operation Billion Digits 27 2006-11-03 08:05
which program? drakkar67 Prime Sierpinski Project 14 2005-11-29 06:25

All times are UTC. The time now is 23:47.


Tue Nov 29 23:47:12 UTC 2022 up 103 days, 21:15, 0 users, load averages: 0.62, 0.77, 0.86

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.

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