mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > YAFU

Reply
 
Thread Tools
Old 2020-01-22, 21:17   #474
Stargate38
 
Stargate38's Avatar
 
"Daniel Jackson"
May 2011
14285714285714285714

28716 Posts
Default Bug, or extra difficult C32?

Code:
[redacted]>yafu 35189596991651349423592303646371


01/22/20 16:09:52 v1.35-beta @ PC, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
detected Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2713.790970
using 1 random witnesses for Rabin-Miller PRP checks

===============================================================
======= Welcome to YAFU (Yet Another Factoring Utility) =======
=======             bbuhrow@gmail.com                   =======
=======     Type help at any time, or quit to quit      =======
===============================================================
cached 78498 primes. pmax = 999983


>> fac: factoring 35189596991651349423592303646371
fac: using pretesting plan: normal
fac: using tune info for qs/gnfs crossover
input from file = 2796044857275887821399497502568105270613421180922414012239946414416977541361
input to yafu = 35189596991651349423592303646371
input from file = 1232303098349565488323549547654987653712936781422417554389046984422399307445611657870694737242026156670443188757334873375979
input to yafu = 35189596991651349423592303646371
div: primes less than 10000
fmt: 1000000 iterations
93%rho: x^2 + 3, starting 1000 iterations on C32
rho: x^2 + 2, starting 1000 iterations on C32
rho: x^2 + 1, starting 1000 iterations on C32
fac: trivial ECM work to do... skipping to sieve method
fac: QS time estimation from tune data = 0.00 sec
fac: GNFS time estimation from tune data = 2.46 sec
n = 35189596991651349423592303646371 (32 digits and 105 bits)
==== sieve params ====
factor base: 200 primes (max prime = 2803)
large prime cutoff: 140150 (50 * pmax)
sieve interval: 1 blocks of size 16384
multiplier is 1
trial factoring cutoff at 42 bits
==== sieving in progress ====
0 relations found: 0 full + 0 from 0 partial, using 2048 polys
QS elapsed time = 0.2451 seconds.
rho: x^2 + 3, starting 2000 iterations on C32
rho: x^2 + 2, starting 2000 iterations on C32
rho: x^2 + 1, starting 2000 iterations on C32
rho: x^2 + 3, starting 4000 iterations on C32
rho: x^2 + 2, starting 4000 iterations on C32
rho: x^2 + 1, starting 4000 iterations on C32
rho: x^2 + 3, starting 8000 iterations on C32
rho: x^2 + 2, starting 8000 iterations on C32
rho: x^2 + 1, starting 8000 iterations on C32
rho: x^2 + 3, starting 16000 iterations on C32
rho: x^2 + 2, starting 16000 iterations on C32
rho: x^2 + 1, starting 16000 iterations on C32
rho: x^2 + 3, starting 32000 iterations on C32
rho: x^2 + 2, starting 32000 iterations on C32
rho: x^2 + 1, starting 32000 iterations on C32
rho: x^2 + 3, starting 64000 iterations on C32
rho: x^2 + 2, starting 64000 iterations on C32
rho: x^2 + 1, starting 64000 iterations on C32
rho: x^2 + 3, starting 128000 iterations on C32
rho: x^2 + 2, starting 128000 iterations on C32
rho: found prp16 factor = 4500717012380129
pretesting / qs ratio was 0.01
Total factoring time = 33.6523 seconds


***factors found***

P16 = 4500717012380129
P16 = 7818664647178499

ans = 1
It actually took longer to factor this C32 than it takes to factor 5854935995369825582366670549148979544725196139946690437848064159809233 into 50033719593250012807674437175392647 and 117019802704408723429586747968568039 (21.5416 seconds, including RHO, ECM and SIQS). Is there something special about this number that makes it so hard to factor, or is it just a bug in YAFU?

Number is from this Aliquot sequence. I noticed that YAFU was getting stuck, so I ran it by itself, and got the above output.

Last fiddled with by Stargate38 on 2020-01-22 at 21:33 Reason: fix link
Stargate38 is offline   Reply With Quote
Old 2020-01-22, 21:54   #475
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

1101010010112 Posts
Default

Quote:
Originally Posted by Stargate38 View Post
It actually took longer to factor this C32 than it takes to factor 5854935995369825582366670549148979544725196139946690437848064159809233 into 50033719593250012807674437175392647 and 117019802704408723429586747968568039 (21.5416 seconds, including RHO, ECM and SIQS). Is there something special about this number that makes it so hard to factor, or is it just a bug in YAFU?

Number is from this Aliquot sequence. I noticed that YAFU was getting stuck, so I ran it by itself, and got the above output.
Good test case, thank you!

I can confirm that it doesn't work in the current wip version of yafu. Looks like it fails both the tiny_siqs and smallmpqs routines. Once it fails like this, aliqueit goes into an infinite loop of increasing rho until it succeeds, which is why it took so long. I will look into it.
bsquared is offline   Reply With Quote
Old 2020-02-15, 14:55   #476
10metreh
 
10metreh's Avatar
 
Nov 2008

91216 Posts
Default

Don't think this one's turned up before:

Code:
02/15/20 06:53:28 v1.35-beta @ BLACKBOX2, 
02/15/20 06:53:28 v1.35-beta @ BLACKBOX2, ****************************
02/15/20 06:53:28 v1.35-beta @ BLACKBOX2, Starting factorization of 283490451127452436661826524180114011280898553856966902146606889753248396992859405461
02/15/20 06:53:28 v1.35-beta @ BLACKBOX2, using pretesting plan: custom
02/15/20 06:53:28 v1.35-beta @ BLACKBOX2, custom pretest ratio is: 0.3200
02/15/20 06:53:28 v1.35-beta @ BLACKBOX2, using tune info for qs/gnfs crossover
02/15/20 06:53:28 v1.35-beta @ BLACKBOX2, ****************************
02/15/20 06:53:28 v1.35-beta @ BLACKBOX2, rho: x^2 + 3, starting 1000 iterations on C84
02/15/20 06:53:28 v1.35-beta @ BLACKBOX2, rho: x^2 + 2, starting 1000 iterations on C84
02/15/20 06:53:28 v1.35-beta @ BLACKBOX2, rho: x^2 + 1, starting 1000 iterations on C84
02/15/20 06:53:28 v1.35-beta @ BLACKBOX2, pm1: starting B1 = 150K, B2 = gmp-ecm default on C84
02/15/20 06:53:28 v1.35-beta @ BLACKBOX2, current ECM pretesting depth: 0.00
02/15/20 06:53:28 v1.35-beta @ BLACKBOX2, scheduled 30 curves at B1=2000 toward target pretesting depth of 26.88
02/15/20 06:53:29 v1.35-beta @ BLACKBOX2, Finished 30 curves using Lenstra ECM method on C84 input, B1=2k, B2=gmp-ecm default
02/15/20 06:53:29 v1.35-beta @ BLACKBOX2, current ECM pretesting depth: 15.18
02/15/20 06:53:29 v1.35-beta @ BLACKBOX2, scheduled 74 curves at B1=11000 toward target pretesting depth of 26.88
02/15/20 06:53:30 v1.35-beta @ BLACKBOX2, Finished 74 curves using Lenstra ECM method on C84 input, B1=11k, B2=gmp-ecm default
02/15/20 06:53:30 v1.35-beta @ BLACKBOX2, current ECM pretesting depth: 20.24
02/15/20 06:53:30 v1.35-beta @ BLACKBOX2, scheduled 214 curves at B1=50000 toward target pretesting depth of 26.88
02/15/20 06:53:41 v1.35-beta @ BLACKBOX2, Finished 214 curves using Lenstra ECM method on C84 input, B1=50k, B2=gmp-ecm default
02/15/20 06:53:41 v1.35-beta @ BLACKBOX2, pm1: starting B1 = 3750K, B2 = gmp-ecm default on C84
02/15/20 06:53:42 v1.35-beta @ BLACKBOX2, current ECM pretesting depth: 25.33
02/15/20 06:53:42 v1.35-beta @ BLACKBOX2, scheduled 134 curves at B1=250000 toward target pretesting depth of 26.88
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, Finished 134 curves using Lenstra ECM method on C84 input, B1=250k, B2=gmp-ecm default
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, final ECM pretested depth: 26.89
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, scheduler: switching to sieve method
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, starting SIQS on c84: 283490451127452436661826524180114011280898553856966902146606889753248396992859405461
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, random seeds: 2046990139, 898121269
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, ==== sieve params ====
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, n = 85 digits, 280 bits
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, factor base: 58144 primes (max prime = 1534151)
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, single large prime cutoff: 145744345 (95 * pmax)
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, double large prime range from 2353619290801 to 494840324470507
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, allocating 7 large prime slices of factor base
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, buckets hold 2048 elements
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, large prime hashtables have 1376256 bytes
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, using SSE4.1 enabled 32k sieve core
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, sieve interval: 12 blocks of size 32768
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, polynomial A has ~ 11 factors
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, using multiplier of 5
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, using SPV correction of 20 bits, starting at offset 34
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, trial factoring cutoff at 90 bits
02/15/20 06:54:05 v1.35-beta @ BLACKBOX2, ==== sieving started ( 4 threads) ====
02/15/20 06:55:52 v1.35-beta @ BLACKBOX2, trial division touched 16004277 sieve locations out of 130513895424
02/15/20 06:55:52 v1.35-beta @ BLACKBOX2, total reports = 16004277, total surviving reports = 7342494
02/15/20 06:55:52 v1.35-beta @ BLACKBOX2, total blocks sieved = 3982968, avg surviving reports per block = 1.84
02/15/20 06:55:52 v1.35-beta @ BLACKBOX2, brent-rho: 12 failures, 385696 attempts, 4588609 outside range, 2123784 prp, 365793 useful
02/15/20 06:55:52 v1.35-beta @ BLACKBOX2, 59371 relations found: 19817 full + 39554 from 590381 partial, using 165957 polys (442 A polys)
02/15/20 06:55:52 v1.35-beta @ BLACKBOX2, on average, sieving found 3.68 rels/poly and 5685.53 rels/sec
02/15/20 06:55:52 v1.35-beta @ BLACKBOX2, trial division touched 16004277 sieve locations out of 130513895424
02/15/20 06:55:52 v1.35-beta @ BLACKBOX2, ==== post processing stage (msieve-1.38) ====
02/15/20 06:55:52 v1.35-beta @ BLACKBOX2, QS elapsed time = 107.3248 seconds.
02/15/20 06:55:53 v1.35-beta @ BLACKBOX2, begin singleton removal with 610198 relations
02/15/20 06:55:53 v1.35-beta @ BLACKBOX2, reduce to 126503 relations in 10 passes
02/15/20 06:55:53 v1.35-beta @ BLACKBOX2, failed to read relation 1721
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2, recovered 116386 relations
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2, recovered 81331 polynomials
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2, attempting to build 49759 cycles
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2, found 49759 cycles from 116386 relations in 4 passes
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2, distribution of cycle lengths:
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2,    length 1 : 18164
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2,    length 2 : 12283
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2,    length 3 : 8768
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2,    length 4 : 5048
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2,    length 5 : 2813
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2,    length 6 : 1435
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2,    length 7 : 685
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2,    length 9+: 563
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2, largest cycle: 14 relations
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2, matrix is 58144 x 49759 (10.2 MB) with weight 2267696 (45.57/col)
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2, sparse part has weight 2267696 (45.57/col)
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2, filtering completed in 2 passes
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2, matrix is 46827 x 39699 (8.7 MB) with weight 1968324 (49.58/col)
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2, sparse part has weight 1968324 (49.58/col)
02/15/20 06:55:54 v1.35-beta @ BLACKBOX2, matrix must have more columns than rows
02/15/20 06:55:56 v1.35-beta @ BLACKBOX2, begin singleton removal with 610198 relations
02/15/20 06:55:56 v1.35-beta @ BLACKBOX2, reduce to 126504 relations in 10 passes
02/15/20 06:55:56 v1.35-beta @ BLACKBOX2, failed to read relation 1721
02/15/20 06:55:56 v1.35-beta @ BLACKBOX2, recovered 116386 relations
02/15/20 06:55:56 v1.35-beta @ BLACKBOX2, recovered 81331 polynomials
02/15/20 06:55:56 v1.35-beta @ BLACKBOX2, attempting to build 49759 cycles
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2, found 49759 cycles from 116386 relations in 4 passes
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2, distribution of cycle lengths:
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2,    length 1 : 18164
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2,    length 2 : 12283
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2,    length 3 : 8768
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2,    length 4 : 5048
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2,    length 5 : 2813
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2,    length 6 : 1435
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2,    length 7 : 685
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2,    length 9+: 563
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2, largest cycle: 14 relations
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2, matrix is 58144 x 49759 (10.2 MB) with weight 2267696 (45.57/col)
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2, sparse part has weight 2267696 (45.57/col)
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2, filtering completed in 2 passes
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2, matrix is 46827 x 39699 (8.7 MB) with weight 1968324 (49.58/col)
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2, sparse part has weight 1968324 (49.58/col)
02/15/20 06:55:57 v1.35-beta @ BLACKBOX2, matrix must have more columns than rows
02/15/20 06:55:58 v1.35-beta @ BLACKBOX2, begin singleton removal with 610198 relations
02/15/20 06:55:58 v1.35-beta @ BLACKBOX2, reduce to 126504 relations in 10 passes
02/15/20 06:55:58 v1.35-beta @ BLACKBOX2, failed to read relation 1721
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2, recovered 116386 relations
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2, recovered 81331 polynomials
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2, attempting to build 49759 cycles
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2, found 49759 cycles from 116386 relations in 4 passes
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2, distribution of cycle lengths:
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2,    length 1 : 18164
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2,    length 2 : 12283
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2,    length 3 : 8768
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2,    length 4 : 5048
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2,    length 5 : 2813
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2,    length 6 : 1435
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2,    length 7 : 685
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2,    length 9+: 563
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2, largest cycle: 14 relations
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2, matrix is 58144 x 49759 (10.2 MB) with weight 2267696 (45.57/col)
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2, sparse part has weight 2267696 (45.57/col)
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2, filtering completed in 2 passes
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2, matrix is 46827 x 39699 (8.7 MB) with weight 1968324 (49.58/col)
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2, sparse part has weight 1968324 (49.58/col)
02/15/20 06:55:59 v1.35-beta @ BLACKBOX2, matrix must have more columns than rows
02/15/20 06:56:01 v1.35-beta @ BLACKBOX2, begin singleton removal with 610198 relations
02/15/20 06:56:01 v1.35-beta @ BLACKBOX2, reduce to 126504 relations in 10 passes
02/15/20 06:56:01 v1.35-beta @ BLACKBOX2, failed to read relation 1721
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2, recovered 116386 relations
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2, recovered 81331 polynomials
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2, attempting to build 49759 cycles
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2, found 49759 cycles from 116386 relations in 4 passes
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2, distribution of cycle lengths:
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2,    length 1 : 18164
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2,    length 2 : 12283
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2,    length 3 : 8768
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2,    length 4 : 5048
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2,    length 5 : 2813
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2,    length 6 : 1435
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2,    length 7 : 685
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2,    length 9+: 563
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2, largest cycle: 14 relations
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2, matrix is 58144 x 49759 (10.2 MB) with weight 2267696 (45.57/col)
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2, sparse part has weight 2267696 (45.57/col)
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2, filtering completed in 2 passes
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2, matrix is 46827 x 39699 (8.7 MB) with weight 1968324 (49.58/col)
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2, sparse part has weight 1968324 (49.58/col)
02/15/20 06:56:02 v1.35-beta @ BLACKBOX2, matrix must have more columns than rows
02/15/20 06:56:04 v1.35-beta @ BLACKBOX2, begin singleton removal with 610198 relations
02/15/20 06:56:04 v1.35-beta @ BLACKBOX2, reduce to 126504 relations in 10 passes
02/15/20 06:56:04 v1.35-beta @ BLACKBOX2, failed to read relation 1721
02/15/20 06:56:04 v1.35-beta @ BLACKBOX2, recovered 116386 relations
02/15/20 06:56:04 v1.35-beta @ BLACKBOX2, recovered 81331 polynomials
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2, attempting to build 49759 cycles
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2, found 49759 cycles from 116386 relations in 4 passes
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2, distribution of cycle lengths:
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2,    length 1 : 18164
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2,    length 2 : 12283
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2,    length 3 : 8768
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2,    length 4 : 5048
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2,    length 5 : 2813
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2,    length 6 : 1435
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2,    length 7 : 685
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2,    length 9+: 563
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2, largest cycle: 14 relations
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2, matrix is 58144 x 49759 (10.2 MB) with weight 2267696 (45.57/col)
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2, sparse part has weight 2267696 (45.57/col)
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2, filtering completed in 2 passes
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2, matrix is 46827 x 39699 (8.7 MB) with weight 1968324 (49.58/col)
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2, sparse part has weight 1968324 (49.58/col)
02/15/20 06:56:05 v1.35-beta @ BLACKBOX2, matrix must have more columns than rows
02/15/20 06:56:06 v1.35-beta @ BLACKBOX2, begin singleton removal with 610198 relations
02/15/20 06:56:06 v1.35-beta @ BLACKBOX2, reduce to 126504 relations in 10 passes
02/15/20 06:56:06 v1.35-beta @ BLACKBOX2, failed to read relation 1721
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2, recovered 116386 relations
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2, recovered 81331 polynomials
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2, attempting to build 49759 cycles
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2, found 49759 cycles from 116386 relations in 4 passes
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2, distribution of cycle lengths:
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2,    length 1 : 18164
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2,    length 2 : 12283
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2,    length 3 : 8768
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2,    length 4 : 5048
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2,    length 5 : 2813
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2,    length 6 : 1435
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2,    length 7 : 685
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2,    length 9+: 563
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2, largest cycle: 14 relations
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2, matrix is 58144 x 49759 (10.2 MB) with weight 2267696 (45.57/col)
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2, sparse part has weight 2267696 (45.57/col)
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2, filtering completed in 2 passes
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2, matrix is 46827 x 39699 (8.7 MB) with weight 1968324 (49.58/col)
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2, sparse part has weight 1968324 (49.58/col)
02/15/20 06:56:07 v1.35-beta @ BLACKBOX2, matrix must have more columns than rows
02/15/20 06:56:09 v1.35-beta @ BLACKBOX2, begin singleton removal with 610198 relations
02/15/20 06:56:09 v1.35-beta @ BLACKBOX2, reduce to 126504 relations in 10 passes
02/15/20 06:56:09 v1.35-beta @ BLACKBOX2, failed to read relation 1721
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2, recovered 116386 relations
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2, recovered 81331 polynomials
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2, attempting to build 49759 cycles
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2, found 49759 cycles from 116386 relations in 4 passes
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2, distribution of cycle lengths:
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2,    length 1 : 18164
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2,    length 2 : 12283
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2,    length 3 : 8768
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2,    length 4 : 5048
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2,    length 5 : 2813
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2,    length 6 : 1435
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2,    length 7 : 685
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2,    length 9+: 563
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2, largest cycle: 14 relations
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2, matrix is 58144 x 49759 (10.2 MB) with weight 2267696 (45.57/col)
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2, sparse part has weight 2267696 (45.57/col)
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2, filtering completed in 2 passes
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2, matrix is 46827 x 39699 (8.7 MB) with weight 1968324 (49.58/col)
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2, sparse part has weight 1968324 (49.58/col)
02/15/20 06:56:10 v1.35-beta @ BLACKBOX2, matrix must have more columns than rows
02/15/20 06:56:12 v1.35-beta @ BLACKBOX2, begin singleton removal with 610198 relations
02/15/20 06:56:12 v1.35-beta @ BLACKBOX2, reduce to 126504 relations in 10 passes
02/15/20 06:56:12 v1.35-beta @ BLACKBOX2, failed to read relation 1721
02/15/20 06:56:12 v1.35-beta @ BLACKBOX2, recovered 116386 relations
02/15/20 06:56:12 v1.35-beta @ BLACKBOX2, recovered 81331 polynomials
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2, attempting to build 49759 cycles
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2, found 49759 cycles from 116386 relations in 4 passes
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2, distribution of cycle lengths:
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2,    length 1 : 18164
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2,    length 2 : 12283
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2,    length 3 : 8768
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2,    length 4 : 5048
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2,    length 5 : 2813
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2,    length 6 : 1435
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2,    length 7 : 685
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2,    length 9+: 563
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2, largest cycle: 14 relations
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2, matrix is 58144 x 49759 (10.2 MB) with weight 2267696 (45.57/col)
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2, sparse part has weight 2267696 (45.57/col)
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2, filtering completed in 2 passes
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2, matrix is 46827 x 39699 (8.7 MB) with weight 1968324 (49.58/col)
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2, sparse part has weight 1968324 (49.58/col)
02/15/20 06:56:13 v1.35-beta @ BLACKBOX2, matrix must have more columns than rows
02/15/20 06:56:14 v1.35-beta @ BLACKBOX2, begin singleton removal with 610198 relations
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2, reduce to 126504 relations in 10 passes
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2, failed to read relation 1721
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2, recovered 116386 relations
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2, recovered 81331 polynomials
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2, attempting to build 49759 cycles
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2, found 49759 cycles from 116386 relations in 4 passes
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2, distribution of cycle lengths:
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2,    length 1 : 18164
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2,    length 2 : 12283
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2,    length 3 : 8768
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2,    length 4 : 5048
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2,    length 5 : 2813
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2,    length 6 : 1435
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2,    length 7 : 685
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2,    length 9+: 563
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2, largest cycle: 14 relations
02/15/20 06:56:15 v1.35-beta @ BLACKBOX2, matrix is 58144 x 49759 (10.2 MB) with weight 2267696 (45.57/col)
02/15/20 06:56:15 v1.35
When the siqs postprocessing tries to recover the relations it seems to lose about 10k of them, leading to the "matrix must have more columns than rows" error which I've only seen before in nfs jobs. The postprocessing then runs repeatedly, producing the same results each time, until it mysteriously crashes. Unfortunately I can't seem to reproduce this even with the same random seeds, but might it at least be possible to deal with "matrix must have more columns than rows" during siqs in a better way, eg sieving a bit more?
10metreh is offline   Reply With Quote
Old 2021-01-28, 17:11   #477
Stargate38
 
Stargate38's Avatar
 
"Daniel Jackson"
May 2011
14285714285714285714

10100001112 Posts
Default

Strange bug when trying to factor a special-form number of 584 digits (I'm only planning on running ECM to t30 or so, hence the "-pretest" flag, and I usually Ctrl+C to stop it at said point):

Code:
C:\Numbers\YAFU-r373-wip-win64-core2>yafu "229990229272748477837597264493410491479373314885817486162229843087955153410208128489569930127250104833023207305103794285050644863404342542318773522601981048563852416588117586541965733124901738269^3+1" -pretest


01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, System/Build Info:
Using GMP-ECM 7.0.4, Powered by GMP 6.1.2
detected Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz
detected L1 = 32768 bytes, L2 = 8388608 bytes, CL = 64 bytes
measured cpu frequency ~= 2399.484880
using 1 random witnesses for Rabin-Miller PRP checks

===============================================================
======= Welcome to YAFU (Yet Another Factoring Utility) =======
=======             bbuhrow@gmail.com                   =======
=======     Type help at any time, or quit to quit      =======
===============================================================
cached 78498 primes. pmax = 999983


>> fac: factoring 12165449451456557256033485712637681555768100458706997780315565491278872139990857282260917654227324845359554262810584273601706633425910583583502712742197846272361309801963009983059965124068781411036221020413296729623914988451184332908886553010080292857159462746257873678346552888062340317962801077466269102293568360954257328914617374931175816696569765714183334953776080658930163888177790478881721340396025483110240699276975399266544788795449454320444308393016747565600614610458789654512659836823019655477010273092305823198351292212894597255321708336001563103610703583990056775717719110
fac: using pretesting plan: normal
fac: using tune info for qs/gnfs crossover
input from file = 424028707503853115779226080929589750136190229673159970827756969
input to yafu = 12165449451456557256033485712637681555768100458706997780315565491278872139990857282260917654227324845359554262810584273601706633425910583583502712742197846272361309801963009983059965124068781411036221020413296729623914988451184332908886553010080292857159462746257873678346552888062340317962801077466269102293568360954257328914617374931175816696569765714183334953776080658930163888177790478881721340396025483110240699276975399266544788795449454320444308393016747565600614610458789654512659836823019655477010273092305823198351292212894597255321708336001563103610703583990056775717719110
input from file = 3647412765777930029748865794183394372567484610726598126960211077749358821442427233931397420173459354592216437893
input to yafu = 12165449451456557256033485712637681555768100458706997780315565491278872139990857282260917654227324845359554262810584273601706633425910583583502712742197846272361309801963009983059965124068781411036221020413296729623914988451184332908886553010080292857159462746257873678346552888062340317962801077466269102293568360954257328914617374931175816696569765714183334953776080658930163888177790478881721340396025483110240699276975399266544788795449454320444308393016747565600614610458789654512659836823019655477010273092305823198351292212894597255321708336001563103610703583990056775717719110
div: primes less than 10000
div: found prime factor = 2
div: found prime factor = 5
div: found prime factor = 7
div: found prime factor = 31
fmt: 1000000 iterations
98%rho: x^2 + 3, starting 1000 iterations on C580
rho: found prp6 factor = 932983
rho: x^2 + 3, starting 1000 iterations on C574
rho: found prp9 factor = 391912817
rho: x^2 + 3, starting 1000 iterations on C566
rho: x^2 + 2, starting 1000 iterations on C566
rho: x^2 + 1, starting 1000 iterations on C566
nfs: searching for brent special forms...
nfs: checking a*b^x +/- c for 32 <= x <= 1478

<snip>

nfs: checking x^6 +/- 1
nfs: checking x^5 +/- 1
nfs: checking x^4 +/- 1
nfs: checking x^3 +/- 1
nfs: input divides 229990229272748477837597264493410491479373314885817486162229843087955153410208128489569930127250104833023207305103794285050644863404342542318773522601981048563852416588117586541965733124901738269^3 + 1
gen: found primitive cofactor < input number:
gen: 52895505560931410828932571503952382014144188594641893715898157094158399197164845103067756714151674015438849496668809443629446975030563500621060461529313473903122035392247216653032137753749968778904630988864359936834108330527982752421431231705016191762368230758118896381706555784885168216551188806522082784895614760642025117268479564212403537107374160588512868960292964923950843492877378093
nfs: degree 4 difficulty = 388.72, degree 6 difficulty = 388.72
nfs: choosing degree 6
and factor.log:

Code:
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, ****************************
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, Starting factorization of 12165449451456557256033485712637681555768100458706997780315565491278872139990857282260917654227324845359554262810584273601706633425910583583502712742197846272361309801963009983059965124068781411036221020413296729623914988451184332908886553010080292857159462746257873678346552888062340317962801077466269102293568360954257328914617374931175816696569765714183334953776080658930163888177790478881721340396025483110240699276975399266544788795449454320444308393016747565600614610458789654512659836823019655477010273092305823198351292212894597255321708336001563103610703583990056775717719110
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, using pretesting plan: normal
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, using tune info for qs/gnfs crossover
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, ****************************
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, div: found prime factor = 2
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, div: found prime factor = 5
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, div: found prime factor = 7
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, div: found prime factor = 31
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, rho: x^2 + 3, starting 1000 iterations on C580
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, prp6 = 932983
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, rho: x^2 + 3, starting 1000 iterations on C574
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, prp9 = 391912817
01/28/21 11:47:59 v1.35-beta @ LAPTOP-ONGC39AN, rho: x^2 + 3, starting 1000 iterations on C566
01/28/21 11:48:00 v1.35-beta @ LAPTOP-ONGC39AN, rho: x^2 + 2, starting 1000 iterations on C566
01/28/21 11:48:01 v1.35-beta @ LAPTOP-ONGC39AN, rho: x^2 + 1, starting 1000 iterations on C566
01/28/21 11:48:03 v1.35-beta @ LAPTOP-ONGC39AN, nfs: input divides 229990229272748477837597264493410491479373314885817486162229843087955153410208128489569930127250104833023207305103794285050644863404342542318773522601981048563852416588117586541965733124901738269^3 + 1
01/28/21 11:48:03 v1.35-beta @ LAPTOP-ONGC39AN, nfs: using supplied cofactor: 15332226537994512450938444661307040424151430984743334677227694191364859603484877020860786888004993918097116754619545324432857225034052669511730509594267145040982480680936978918183795581943714558293971497926587434132046924612940810483936793125932882660206645965387477830574936978246005812679299632352225307791361634870353876215600180822969979170060868661956355877568691833141055679074620113644501939794545241351047066974494410225688979117136374764075032890003167144208391606627871210750435142278904744583122428962606223011067113650062892716979223035768760259481502953
01/28/21 11:48:03 v1.35-beta @ LAPTOP-ONGC39AN, nfs: input divides 229990229272748477837597264493410491479373314885817486162229843087955153410208128489569930127250104833023207305103794285050644863404342542318773522601981048563852416588117586541965733124901738269^3 + 1
01/28/21 11:48:03 v1.35-beta @ LAPTOP-ONGC39AN, nfs: using supplied cofactor: 15332226537994512450938444661307040424151430984743334677227694191364859603484877020860786888004993918097116754619545324432857225034052669511730509594267145040982480680936978918183795581943714558293971497926587434132046924612940810483936793125932882660206645965387477830574936978246005812679299632352225307791361634870353876215600180822969979170060868661956355877568691833141055679074620113644501939794545241351047066974494410225688979117136374764075032890003167144208391606627871210750435142278904744583122428962606223011067113650062892716979223035768760259481502953
01/28/21 11:48:03 v1.35-beta @ LAPTOP-ONGC39AN, nfs: commencing snfs on c389 primitive factor: 52895505560931410828932571503952382014144188594641893715898157094158399197164845103067756714151674015438849496668809443629446975030563500621060461529313473903122035392247216653032137753749968778904630988864359936834108330527982752421431231705016191762368230758118896381706555784885168216551188806522082784895614760642025117268479564212403537107374160588512868960292964923950843492877378093
01/28/21 11:49:54 v1.35-beta @ LAPTOP-ONGC39AN,
Error in Event Viewer:

Code:
Faulting application name: yafu.exe, version: 0.0.0.0, time stamp: 0x5b19a85c
Faulting module name: yafu.exe, version: 0.0.0.0, time stamp: 0x5b19a85c
Exception code: 0xc0000005
Fault offset: 0x00000000000ea1cc
Faulting process id: 0x96c
Faulting application start time: 0x01d6f59556173cd7
Faulting application path: C:\Numbers\YAFU-r373-wip-win64-core2\yafu.exe
Faulting module path: C:\Numbers\YAFU-r373-wip-win64-core2\yafu.exe
Report Id: df43e7a4-ee80-426d-8748-b402c668c537
Faulting package full name: 
Faulting package-relative application ID:
Strangely, this works, and makes it to ECM with no problems:

Code:
yafu "factor((229990229272748477837597264493410491479373314885817486162229843087955153410208128489569930127250104833023207305103794285050644863404342542318773522601981048563852416588117586541965733124901738269^3+1)/2)" -pretest
Why does it crash in the first case? I'm not planning on running SNFS on such a large number, so there's no problem with time or memory. It also works if I input the primitive part.

Last fiddled with by Stargate38 on 2021-01-28 at 17:13
Stargate38 is offline   Reply With Quote
Old 2021-02-23, 14:30   #478
Aleksey
 
Feb 2021

3 Posts
Default Does yafu determine its home directory properly?

When running yafu in its home directory, `help` works fine:
Code:
C:\Program Files>pushd yafu-1.34

C:\Program Files\yafu-1.34>%yafu%


02/23/21 17:25:09 v1.34.5 @ BLACKPLATO, System/Build Info:
Using GMP-ECM 6.3, Powered by GMP 5.1.1
detected        Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2388.511000
using 20 random witnesses for Rabin-Miller PRP checks

===============================================================
======= Welcome to YAFU (Yet Another Factoring Utility) =======
=======             bbuhrow@gmail.com                   =======
=======     Type help at any time, or quit to quit      =======
===============================================================
cached 78498 primes. pmax = 999983


>> help primes

searching for help on 'primes'
usage: primes(expression1,expression2,[expression3])

description:
print or count the primes in a range between the first two parameters.
The third parameter should evaluate to 1 if the range is to only be counted or 0 if printed.
If the PRIMES_TO_FILE environment variable is set to non-zero, the primes will
be output to a file called primes.dat, in the same directory as the executable.
If the PRIMES_TO_SCREEN environement variable is set to non-zero, the primes
will be printed to the screen.  By default, PRIMES_TO_FILE and
PRIMES_TO_SCREEN are inactive (equal to zero).  The -pfile and -pscreen command line flags
enable the same behavior.  It could take a very long time to print if the range is large.
If expression 3 is omitted, the behavior defaults to a count of primes.
expression 1 and expression 2 should both evaluate to numbers less than 4e18.
The condition expression 2 > expression 1 is also enforced.


>>
But when running from another directory, `help`fails.
Code:
C:\Windows\system32>yafu-x64.exe


02/23/21 17:00:14 v1.34.5 @ BLACKPLATO, System/Build Info:
Using GMP-ECM 6.3, Powered by GMP 5.1.1
detected        Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz
detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes
measured cpu frequency ~= 2393.309160
using 20 random witnesses for Rabin-Miller PRP checks

===============================================================
======= Welcome to YAFU (Yet Another Factoring Utility) =======
=======             bbuhrow@gmail.com                   =======
=======     Type help at any time, or quit to quit      =======
===============================================================
cached 78498 primes. pmax = 999983


>> help

fopen error: No such file or directory
documentation file not found
>> quit
Aleksey is offline   Reply With Quote
Old 2021-02-24, 00:07   #479
Happy5214
 
Happy5214's Avatar
 
"Alexander"
Nov 2008
The Alamo City

34·7 Posts
Default

Quote:
Originally Posted by Aleksey View Post
When running yafu in its home directory, `help` works fine:

[Removed for brevity.]

But when running from another directory, `help`fails.

[Removed for brevity.]
It's not really a bug. The help info is simply read in from docfile.txt in the current directory, which is usually the folder that contains yafu. It isn't ideal when yafu is run from another folder though.

Besides, yafu isn't really meant to be installed globally. You should probably put it somewhere under your User folder and run it from there.

Last fiddled with by Happy5214 on 2021-02-24 at 00:10 Reason: Put it in your user folder.
Happy5214 is online now   Reply With Quote
Old 2021-02-24, 02:04   #480
LaurV
Romulan Interpreter
 
LaurV's Avatar
 
Jun 2011
Thailand

33·347 Posts
Default

Quote:
Originally Posted by Happy5214 View Post
You should probably put it somewhere under your User folder and run it from there.
Yep. That has the advantage that you can use different copies of yafu in different local folders to do different (types of) jobs (like aliquotes, etc), possibly with different externals (ggnfs and ecm) and the files wont mix with each-other. Moreover, windoze won't piss on you about (global) rights (like you are not allowed to write into Program Files unless you are the mighty Admin).

Last fiddled with by LaurV on 2021-02-24 at 02:06
LaurV is offline   Reply With Quote
Old 2021-02-24, 23:29   #481
Aleksey
 
Feb 2021

38 Posts
Default Does yafu determine its home directory properly?

Quote:
Originally Posted by Happy5214 View Post
the current directory, which is usually the folder that contains yafu.
It is the wrong expectation because the current directory is the property of the shell only rather than of yafu. OS sets the current working directory to the process it creates. The shell passes the current working directory to OS when runs any process. It is the basic principle of the current directory: the user may set any current directory by using e.g. `cd` to run any command. And any program should work properly disregards the current directory. Such behavior is the standard feature of OS. In the above example, the running command addresses yafu via the full file name, e.g. "C:\Program Files\yafu-1.34\yafu-x64.exe" (`%yafu%` expands to it). It should not be matter where yafu is running from. The access rights do not matter at all in the described bug.


yafu should not expect that its home directory is the current directory. Instead, yafu should determine its home directory either from ARGV[0], i.e. zero item of the command line, or from the properties of the running yafu process. It is the standard behavior of any program, file system, shell and OS. Do not confuse the home directory of yafu with the current directory. They can be different in common case.
Aleksey is offline   Reply With Quote
Old 2021-02-25, 01:02   #482
Happy5214
 
Happy5214's Avatar
 
"Alexander"
Nov 2008
The Alamo City

10001101112 Posts
Default

Quote:
Originally Posted by Aleksey View Post
They can be different in common case.
Except your case isn't the common case for this particular program, for reasons LaurV and I have explained. yafu simply isn't meant to be installed and used globally. To quote the README:

Quote:
Originally Posted by yafu README
No installation necessary, just put the binary in whatever location you like
and run it. Files that YAFU generates are placed alonside the binary, and
directories/files that YAFU needs are with respect to the binary location
(such as the ggnfs sievers, see below)
IMHO yafu does not need to handle this edge case because it's not the intended modus operandi.
Happy5214 is online now   Reply With Quote
Old 2021-02-25, 18:30   #483
Aleksey
 
Feb 2021

3 Posts
Default Does yafu determine its home directory properly?

Quote:
Originally Posted by Happy5214 View Post
Except your case isn't the common case for this particular program, for reasons LaurV and I have explained.
1. Your reasons are not related to the bug at all as they are related to the specification provided in yafu README rather than its completely wrong implementation in yafu.
"Except your case" -- it is not my case as this is the case created by the developer of yafu. The basics of operating systems should be fulfilled by a software developer to respect users and their convenience provided by OS features like the concept of current directory.
Quote:
Originally Posted by Happy5214 View Post
yafu simply isn't meant to be installed and used globally.
yafu README: No installation necessary, just put the binary in whatever location you like
2. By construction, the installation is implemented by copying files to the directory allocated for the software being installed. In order for this, the user chooses that directory hosted by the file system of a particular host (e.g. a machine, its virtual copy or another host in case of network location). There can be other installation actions performed, e.g. adding that directory to the PATH environment variable to run software without the need to point out its full path every time. It is up to the user to do so. And that directory gets the role of the home directory of the installed software.

By this concept, there is no limit to the number of home directories. This means that the same software can be installed many times to different directories on the same host. Usually, such a limit is set by the software itself, i.e. it is up to the implementation level to decide on this limit. Such multi-homed architecture is often used to work with different versions or layers (dev, test, prod, etc.).

Thus, the home directory can be "C:\Program Files\yafu", "C:\prg\yafu", "C:\tmp\yafu" and so force, whatever location. Their names are not related to OS specific installation procedures and services like Windows Installer and the registration of installation package. And hence, the use of the "C:\Program Files" does not mean the use of Windows Installer. On my system, the purpose of "C:\Program Files" is to host the home directories of any programs. On another system of mine, "C:\prg" has this purpose and there are no "C:\Program Files" or "C:\Program Files (x86)" at all.

The described concept of installation means that the user installs yafu to "whatever location" by "putting the binary" into it. And it becomes the home directory of that yafu copy, not yafu itself, i.e no "global usage" is assumed. Hence, you and the author of yafu readme don't understand the concept of installation process, instruct the user on the installation process in yafu readme, but don't consider it as is, and then say "yafu simply isn't meant to be installed". In short, you are contradicting yourself.



3. "Used globally" is something undefined: by the construction of any OS and file system, the program is started via the full file path that points to the file with the code of that program. Otherwise, OS can not identify the file containing the code of a program.

The file system provides many ways to address files: absolute paths and relative paths. The current directory is the mean related to relative paths to avoid entering full paths every time. Hence, the current directory is just a state and is contained by some variable in the shell or parent process. When the shell starts the program pointed out just by its file name, e.g. "yafu-x64.exe", the shell or OS concatenates the current directory (associated with the shell) with the file name to get the absolute file path of the program file as required or provided by the OS API like CreateProsess, system or alike. The current directory is the beginning of coordinates when pointing out files just by their names or relative paths. Such tools as ProcessExplorer and ProcessHaker display working directories of processes as well as full file names of exectuables. One should always remember that working directories could be or not the current directories when processes were created.

This means that yafu, as any other program of such kind, is always started via its full file name. Hence, there is no thing that you consider as local or global because any local thing is defined relatively to the global thing, e.g. local file system or remote file system, relative (local) path or absolute (global) path. Thus, "used globally" is nonsense.

Quote:
Originally Posted by yafu README
Files that YAFU generates are placed alonside the binary, and
directories/files that YAFU needs are with respect to the binary location
4. "The binary location" is the home directory of yafu copy -- ok. yafu process generates files to it -- ok, however it is bad way of managing files. But there are no words on the current directory! yafu README has no instruction such as "in order to run yafu, the user has to set the current directory to its home directory". Such an instruction would be absolutely incorrect as it is up to the user do decide what current directory to use when calling yafu. Moreover, when yafu is a child process and is running in interactive mode to communicate with the parent process it controls, the current directory of yafu can be anything required to its parent process or the user.

5. By yafu specification, the way by which yafu addresses its files is not related to the current directory at all: the instruction just says where yafu generates files and reads them from. There are many correct ways to implement it, excluding changing the current directory or assuming it as its home directory set by the user.

Quote:
Originally Posted by Happy5214 View Post
IMHO yafu does not need to handle this edge case because it's not the intended modus operandi.
6. Software development is the deducing of code by rules of OS, environment and tasks expressed by specifications, requirements and so force. Thus, no IMHO is allowed: either one follows rules or not, as it is in Math. And either one gets the correct result (relatively to all the rules) or not. This is the basics of respecting users.

"it's not the intended modus operandi" is nonsense as the definition of intended behavior expressed in yafu README uses its home directory rather than the current directory of the shell, which is the user's zone of control.

The bug is not the edge case at all, by definition of both. yafu has to use the current directory and its home directory by their purpose instead of forcing users to setup the current directory to the yafu's home directory every time. Otherwise, yafu breaks a lot of ways of accessing and calling yafu, which OS provides as features of environment for all processes. The correct use of the current directory and the home directory is related to the implementation level and thus does not change the specification of yafu (where it generates files and so on).


7. To sum up, you ignores the basics of operating systems and file systems. And thus, you interpret my words incorrectly, leading to wrong inferences considered above. The program can change its associated current directory to its home directory or anything else. This is how any program should behave to avoid forcing users to do this action for it. However, it is much smarter to calculate paths of internal files without changing the current directory to output files in a standard way predefined by OS architecture.
Aleksey is offline   Reply With Quote
Old 2021-02-25, 18:52   #484
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

1101010010112 Posts
Default

Quote:
Originally Posted by Aleksey View Post
1. Your reasons are not related to the bug at all as they are related to the specification provided in yafu README rather than its completely wrong implementation in yafu.
"Except your case" -- it is not my case as this is the case created by the developer of yafu. The basics of operating systems should be fulfilled by a software developer to respect users and their convenience provided by OS features like the concept of current directory.
Well, I created yafu to use its current directory, or paths relative to it, for files it needs. So I don't consider this a bug. I didn't design it while considering either OS expectations or user convenience .

So I think I can stop reading at point 1).
bsquared is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Running YAFU via Aliqueit doesn't find yafu.ini EdH YAFU 8 2018-03-14 17:22
Where to report bugs Matt Software 1 2007-02-20 19:13
Possible Prime95 bugs JuanTutors Software 9 2006-09-24 21:22
RMA 1.7 beta bugs TTn 15k Search 2 2004-11-24 22:11
RMA 1.6 fixes LLR bugs! TTn 15k Search 16 2004-06-16 01:22

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

Tue Apr 13 08:25:48 UTC 2021 up 5 days, 3:06, 1 user, load averages: 1.89, 1.73, 1.59

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, 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.