Guest User

yafu/factor/nfs/nfs_sieving.c:283

a guest
Dec 9th, 2016
79
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.             // edit lbpr/a depending on test results.  we target something around 2 rels/Q.
  2.             // could also change siever version in more extreme cases.
  3.             if (count > 4*actual_range)
  4.             {
  5.                 if (VFLAG > 0)
  6.                     printf("test: yield greater than 4x/spq, reducing lpbr/lpba\n");
  7.                 jobs[i].lpba--;
  8.                 jobs[i].lpbr--;
  9.                 jobs[i].mfba -= 2;
  10.                 jobs[i].mfbr -= 2;
  11.             }
  12.  
  13.             if (count > 8*actual_range)
  14.             {
  15.                 char *pos;
  16.                 int siever;
  17.  
  18.                 pos = strstr(jobs[i].sievername, "gnfs-lasieve4I");
  19.                 siever = (pos[14] - 48) * 10 + (pos[15] - 48);
  20.  
  21.                 if (VFLAG > 0)
  22.                     printf("test: yield greater than 8x/spq, reducing siever version\n");
  23.  
  24.                 switch (siever)
  25.                 {
  26.                 case 11:
  27.                     if (VFLAG > 0) printf("test: siever version cannot be decreased further\n");
  28.                     jobs[i].snfs->siever = 11;
  29.                     break;
  30.  
  31.                 case 12:
  32.                     pos[15] = '1';
  33.                     jobs[i].snfs->siever = 11;
  34.                     break;
  35.  
  36.                 case 13:
  37.                     pos[15] = '2';
  38.                     jobs[i].snfs->siever = 12;
  39.                     break;
  40.  
  41.                 case 14:
  42.                     pos[15] = '3';
  43.                     jobs[i].snfs->siever = 13;
  44.                     break;
  45.  
  46.                 case 15:
  47.                     pos[15] = '4';
  48.                     jobs[i].snfs->siever = 14;
  49.                     break;
  50.  
  51.                 case 16:
  52.                     pos[15] = '5';
  53.                     jobs[i].snfs->siever = 15;
  54.                     break;
  55.                 }
  56.             }
  57.  
  58.             if (count < actual_range)
  59.             {
  60.                 if (VFLAG > 0)
  61.                     printf("test: yield less than 1x/spq, increasing lpbr/lpba\n");
  62.                
  63.                 jobs[i].lpba++;
  64.                 jobs[i].lpbr++;
  65.                 jobs[i].mfba += 2;
  66.                 jobs[i].mfbr += 2;
  67.             }
  68.  
  69.             if (count < (actual_range/2))
  70.             {
  71.                 char *pos;
  72.                 int siever;
  73.  
  74.                 pos = strstr(jobs[i].sievername, "gnfs-lasieve4I");
  75.                 siever = (pos[14] - 48) * 10 + (pos[15] - 48);
  76.  
  77.                 if (VFLAG > 0)
  78.                     printf("test: yield less than 1x/2*spq, increasing siever version\n");
  79.  
  80.                 switch (siever)
  81.                 {
  82.                 case 16:
  83.                     if (VFLAG > 0) printf("test: siever version cannot be increased further\n");
  84.                     jobs[i].snfs->siever = 16;
  85.                     break;
  86.  
  87.                 case 15:
  88.                     pos[15] = '6';
  89.                     jobs[i].snfs->siever = 16;
  90.                     break;
  91.  
  92.                 case 14:
  93.                     pos[15] = '5';
  94.                     jobs[i].snfs->siever = 15;
  95.                     break;
  96.  
  97.                 case 13:
  98.                     pos[15] = '4';
  99.                     jobs[i].snfs->siever = 14;
  100.                     break;
  101.  
  102.                 case 12:
  103.                     pos[15] = '3';
  104.                     jobs[i].snfs->siever = 13;
  105.                     break;
  106.  
  107.                 case 11:
  108.                     pos[15] = '2';
  109.                     jobs[i].snfs->siever = 12;
  110.                     break;
  111.                 }
  112.             }
RAW Paste Data