![]() |
[QUOTE=yoyo;269298]Just type
yafu tune() yoyo[/QUOTE] Thanks. I will try when the current c125 is finished. Edit: I interrupted the current c125 (ECM almost done) and run yafu tune() (environment: windows 7 professional, 64 bit). It crashed. The last lines in the screen output before the crash are: [code]QS/NFS crossover occurs at 99.1 digits Adding tune_info entry for WIN64 - Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz invalid character in str2hexz[/code] edit2: the yafu.ini now contains a new line: [code]tune_info=Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz,WIN64,2.98066e-005,0.198654,0.226464,0.108526,99.1444,2788.24 [/code] I don't know whether yafu was intended to write more info than this into the .ini file before it crashed. |
[QUOTE=Andi47;269346]I don't know whether yafu was intended to write more info than this into the .ini file before it crashed.[/QUOTE]
No, everything was written that was supposed to be. This was reported a while ago, but I haven't gotten around to fixing it yet, sorry. The crash is bad, obviously, but the good news is that it is Mostly Harmless. |
I've a poly for C106 generated by yafu.
[CODE]n: 4091134978643854621539102129878813576117771447195189889815484292722036572836087988271242622583297593940603 skew: 31332484.77 c0: -29482819378060507590677544431909 c1: -254296951667599849301722 c2: -187475012918115723 c3: -2664096462 c4: 216 Y0: -65970499262049115426896096 Y1: 111150021768809 rlim: 2640000 alim: 2640000 lpbr: 26 lpba: 26 mfbr: 52 mfba: 52 rlambda: 2.500000 alambda: 2.500000[/CODE]When I run yafu with this poly, e.g.[code]./yafu-32k-linux64 "nfs(4091134978643854621539102129878813576117771447195189889815484292722036572836087988271242622583297593940603)"[/code] it always crashes with segmentation fault. Using strace I've seen that segfault happens because gnfs-lasieve12 won't work. Running it manually I got: $ ./gnfs-lasieve4I12e -a nfs.job -f 1360000 -c 40000 -o rels1.dat Special q lower bound 1360000 below FB bound 2.64e+06 and it terminates. What's wrong? |
[QUOTE=unconnected;269411]I've a poly for C106 generated by yafu.
[CODE]n: 4091134978643854621539102129878813576117771447195189889815484292722036572836087988271242622583297593940603 skew: 31332484.77 c0: -29482819378060507590677544431909 c1: -254296951667599849301722 c2: -187475012918115723 c3: -2664096462 c4: 216 Y0: -65970499262049115426896096 Y1: 111150021768809 rlim: 2640000 alim: 2640000 lpbr: 26 lpba: 26 mfbr: 52 mfba: 52 rlambda: 2.500000 alambda: 2.500000[/CODE]When I run yafu with this poly, e.g.[code] ./yafu-32k-linux64 "nfs(4091134978643854621539102129878813576117771447195189889815484292722036572836087988271242622583297593940603)"[/code] , it always crashes with segmentation fault. Using strace I've seen that segfault happens because gnfs-lasieve12 won't work. Running it manually I got: $ ./gnfs-lasieve4I12e -a nfs.job -f 1360000 -c 40000 -o rels1.dat Special q lower bound 1360000 below FB bound 2.64e+06 and it terminates. What's wrong?[/QUOTE] I don't know whether it's the reason for the segfault, but it seems that you might have quite old ggnfs binaries. Newer binaries ought to print "warning: lowering FB bound to 1359999" and start sieving instead of terminating with "special q lower bond 1360000 below FB bound 2.64e+06". |
Thank you, I updated my ggnfs-binaries.
|
@b2
sorry to bother you, I understood your point about "ifs and loops" in yafu. I don't believe they are such complicate of implementation, but well, you have your priorities and I can understand this. However, I did not ask about a full command interpreter, just a "small" function "if(expr1,expr2,expr3)" that evaluates expression1, and if not zero, evaluates (and return) expression2, otherwise evaluates (and return) expression3. So I could write "a=if(p%4-3,modexp(a,b,2^p-1),modexp(a,c,2^p-1))". All the support it is already inside (I checked the source code, but unfortunately I can not compile them, as the last version of VS we use is VS2005, Platform Builder 6, we are WinCE programmers). You just have to extend the function list in "getfunc" with one more token and add one more "case" on the "switch" in "feval". That is mainly all. For the "while(expr1,expr2)" could be somehow the same, with the exception that you have to push it on the stack again if the expr1 remains true (still I did not realize how you can do this, it would need some "special" treatment, but you know better your source code!). Well, anyhow. I give up. Yafu is still a good tool, with or without loops and ifs. We thank you for it. However, :P... Could we at least have access to the "isSquare()" function? Same way as we have access to "isPrime()", just some copy/paste in your sources, in fact I see no reason why you did not put it in the function list, I saw it very well implemented in the code. I think you just forgot about it. And a third point, could you spend some time and give me a short reply to the questions I posted in the [URL="http://www.mersenneforum.org/showpost.php?p=269756&postcount=1189"]factordb thread[/URL]? Thanks a thousand times and twenty four! |
[QUOTE=LaurV;269758]@b2
sorry to bother you, I understood your point about "ifs and loops" in yafu. I don't believe they are such complicate of implementation, but well, you have your priorities and I can understand this. However, I did not ask about a full command interpreter, just a "small" function "if(expr1,expr2,expr3)" that evaluates expression1, and if not zero, evaluates (and return) expression2, otherwise evaluates (and return) expression3. So I could write "a=if(p%4-3,modexp(a,b,2^p-1),modexp(a,c,2^p-1))". All the support it is already inside (I checked the source code, but unfortunately I can not compile them, as the last version of VS we use is VS2005, Platform Builder 6, we are WinCE programmers). You just have to extend the function list in "getfunc" with one more token and add one more "case" on the "switch" in "feval". That is mainly all. For the "while(expr1,expr2)" could be somehow the same, with the exception that you have to push it on the stack again if the expr1 remains true (still I did not realize how you can do this, it would need some "special" treatment, but you know better your source code!). Well, anyhow. I give up. Yafu is still a good tool, with or without loops and ifs. We thank you for it. However, :P... Could we at least have access to the "isSquare()" function? Same way as we have access to "isPrime()", just some copy/paste in your sources, in fact I see no reason why you did not put it in the function list, I saw it very well implemented in the code. I think you just forgot about it. And a third point, could you spend some time and give me a short reply to the questions I posted in the [URL="http://www.mersenneforum.org/showpost.php?p=269756&postcount=1189"]factordb thread[/URL]? Thanks a thousand times and twenty four![/QUOTE] Things have been extra busy lately, so I just have time for a brief reply to each of your points. 1) I agree that the 'if' function you describe doesn't sound too hard, but I just don't have the time right now to do anything about it. 'while' might be harder, and in general this whole area is a slipperly slope. You might only want to do "if(p%4-3,modexp(a,b,2^p-1),modexp(a,c,2^p-1))", but the next guy will want to do some crazy nested if/while statement that I'll still be held accountable to parse and provide meaningful error information about. Your above example should also be easy enough to do in a external script or program. 2) sure. not making issquare visible was an oversight. 3) I believe you are asking what your options are for resuming a large GNFS job that is still in the polyfind stage. The answer is that yafu is not very friendly about this right now. There isn't an easy way to resume poly searching. Your only option is to search manually using -np X,Y and then manually construct the .job file. Yafu really wasn't designed to do C185s in an automated fashion. Nothing is, AFAIK. Anything above C150 should really be done with more specialized processes. Sorry I can't be of more help. |
1. not really (external script can't hold results of former calculus, we already discussed about that). I understand and respect your point of view. Waiting for a time when you will not be so busy.
2. thanks. 3. yes, you pointed exactly my problem, resuming a nfs in poly phase. Now that you explained, everything I can do about is to pray to god that it will not crash :D Thanks for your time, you were helpful enough. |
[QUOTE=LaurV;269805]3. yes, you pointed exactly my problem, resuming a nfs in poly phase. Now that you explained, everything I can do about is to pray to god that it will not crash :D
[/QUOTE] That's probably not realistic... a C185 polyfind will be scheduled to run for 12.5 days. And that severely undershoots how much time you should really spend... the lookup table stops at ~ C155. A C185 really needs CPU-years of effort to find good polynomials. Once that is done, the top several should be trial sieved before one is picked. yafu doesn't support this either. And the sieving effort will be enormous regardless of the polynomial used. Are you sure you want to take on a number that large? |
YAFU return code = 1
Hello,
I run the precompiled 32bit yafu binary version 1.28. I wonder that yafu returns an error code even if it was running without faults: [CODE] C:\>yafu "2+2" ans = 4 C:\>echo %ERRORLEVEL% 1 [/CODE] Is there a way to avoid this, so yafu returns 0 as not fault happened? yoyo |
[QUOTE=yoyo;269920]Hello,
I run the precompiled 32bit yafu binary version 1.28. I wonder that yafu returns an error code even if it was running without faults: [CODE] C:\>yafu "2+2" ans = 4 C:\>echo %ERRORLEVEL% 1 [/CODE] Is there a way to avoid this, so yafu returns 0 as not fault happened? yoyo[/QUOTE] It's an oversight/typo on my part, sorry. The main function is hardcoded to return 1, rather than 0. I'll fix it. |
| All times are UTC. The time now is 23:03. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.