Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
added test for small exp
  • Loading branch information
sethtroisi committed Apr 13, 2019
1 parent bf700f6 commit f81b34f
Show file tree
Hide file tree
Showing 3 changed files with 163 additions and 5 deletions.
26 changes: 22 additions & 4 deletions src/mfaktc.c
Expand Up @@ -517,12 +517,14 @@ RET_CUDA_ERROR we might have a serios problem (detected by cudaGetLastError())
#ifdef WAGSTAFF
#define NUM_SELFTESTS 1591
#else /* Mersennes */
#define NUM_SELFTESTS 2867
#define NUM_SELFTESTS 3001
#endif
unsigned int exp[NUM_SELFTESTS], index[9];
unsigned int index[9];
int num_selftests=0;
int bit_min[NUM_SELFTESTS], f_class;
unsigned long long int k[NUM_SELFTESTS];
int f_class;
unsigned int exp[NUM_SELFTESTS+1]={};
int bit_min[NUM_SELFTESTS+1]={};
unsigned long long int k[NUM_SELFTESTS+1]={};
int retval=1;

#define NUM_KERNEL 17
Expand All @@ -535,6 +537,22 @@ RET_CUDA_ERROR we might have a serios problem (detected by cudaGetLastError())
#include "selftest-data-mersenne.c"
#endif

{
for(i = 0; i < NUM_SELFTESTS; i++) {
if (exp[i] == 0 || bit_min[i] == 0 || k[i] == 0) {
printf("selftest FAILED!\n");
printf(" setup failed: %d had zero exp, bit_min, or k\n", i);
return retval;
}
}
int past = NUM_SELFTESTS;
if (exp[past] != 0 || bit_min[past] != 0 || k[past] != 0) {
printf("selftest FAILED!\n");
printf(" setup failed: NUM_SELFTESTS(%d) incorrect\n", past);
return retval;
}
}

for(i = 0; i <= NUM_KERNEL; i++)
{
kernel_success[i] = 0;
Expand Down
2 changes: 1 addition & 1 deletion src/parse.c
Expand Up @@ -93,7 +93,7 @@ returns 1 if the assignment is within the supported bounds of mfaktc,
{
int ret = 1;

if(exp < 100000 ) {ret = 0; if(verbosity >= 1)printf("WARNING: exponents < 100000 are not supported!\n");}
if(exp < 1000 ) {ret = 0; if(verbosity >= 1)printf("WARNING: exponents < 1000 are not supported!\n");}
else if(!isprime(exp)) {ret = 0; if(verbosity >= 1)printf("WARNING: exponent is not prime!\n");}
else if(bit_min < 1 ) {ret = 0; if(verbosity >= 1)printf("WARNING: bit_min < 1 doesn't make sense!\n");}
else if(bit_min > 94) {ret = 0; if(verbosity >= 1)printf("WARNING: bit_min > 94 is not supported!\n");}
Expand Down
140 changes: 140 additions & 0 deletions src/selftest-data-mersenne.c
Expand Up @@ -2911,3 +2911,143 @@ exp[2863]=500881; bit_min[2863]=58; k[2863]=563032721151ULL; // M500881 has a fa
exp[2864]=500179; bit_min[2864]=71; k[2864]=2986307427190001ULL; // M500179 has a factor: 2987376525248935020359
exp[2865]=500923; bit_min[2865]=72; k[2865]=8173323366139452ULL; // M500923 has a factor: 8188411321073345428393
exp[2866]=500953; bit_min[2866]=79; k[2866]=895189023449202923ULL; // M500953 has a factor: 896895253727897103771239



/* some (all) known factors from the primenet server (2013-12-18) http://www.mersenne.org/
for exponents from 2000 to 100000 */
exp[2867]=4507; bit_min[2867]=24; k[2867]=2372ULL; // M4507 has a factor: 21381209
exp[2868]=5869; bit_min[2868]=40; k[2868]=100714320ULL; // M5869 has a factor: 1182184688161
exp[2869]=6571; bit_min[2869]=46; k[2869]=5458839293ULL; // M6571 has a factor: 71740065988607
exp[2870]=6701; bit_min[2870]=37; k[2870]=12527988ULL; // M6701 has a factor: 167900095177
exp[2871]=8161; bit_min[2871]=22; k[2871]=411ULL; // M8161 has a factor: 6708343
exp[2872]=8263; bit_min[2872]=67; k[2872]=9899834458387856ULL; // M8263 has a factor: 163604664259317708257
exp[2873]=9769; bit_min[2873]=38; k[2873]=15195411ULL; // M9769 has a factor: 296887940119
exp[2874]=11161; bit_min[2874]=62; k[2874]=241324403493516ULL; // M11161 has a factor: 5386843334782264153
exp[2875]=11353; bit_min[2875]=34; k[2875]=966068ULL; // M11353 has a factor: 21935540009
exp[2876]=11903; bit_min[2876]=29; k[2876]=39592ULL; // M11903 has a factor: 942527153
exp[2877]=11987; bit_min[2877]=50; k[2877]=49765264180ULL; // M11987 has a factor: 1193072443451321
exp[2878]=13331; bit_min[2878]=33; k[2878]=364905ULL; // M13331 has a factor: 9729097111
exp[2879]=13723; bit_min[2879]=37; k[2879]=5785752ULL; // M13723 has a factor: 158795749393
exp[2880]=14177; bit_min[2880]=26; k[2880]=2619ULL; // M14177 has a factor: 74259127
exp[2881]=14639; bit_min[2881]=20; k[2881]=57ULL; // M14639 has a factor: 1668847
exp[2882]=14897; bit_min[2882]=45; k[2882]=1234847364ULL; // M14897 has a factor: 36791042363017
exp[2883]=15227; bit_min[2883]=25; k[2883]=1332ULL; // M15227 has a factor: 40564729
exp[2884]=15289; bit_min[2884]=38; k[2884]=11739467ULL; // M15289 has a factor: 358969421927
exp[2885]=15671; bit_min[2885]=51; k[2885]=87422894724ULL; // M15671 has a factor: 2740008366439609
exp[2886]=16619; bit_min[2886]=47; k[2886]=5589790896ULL; // M16619 has a factor: 185793469801249
exp[2887]=16691; bit_min[2887]=65; k[2887]=1888116326536848ULL; // M16691 has a factor: 63029099212453059937
exp[2888]=17011; bit_min[2888]=29; k[2888]=15804ULL; // M17011 has a factor: 537683689
exp[2889]=17209; bit_min[2889]=32; k[2889]=167312ULL; // M17209 has a factor: 5758544417
exp[2890]=19001; bit_min[2890]=29; k[2890]=16635ULL; // M19001 has a factor: 632163271
exp[2891]=19979; bit_min[2891]=40; k[2891]=38538040ULL; // M19979 has a factor: 1539903002321
exp[2892]=22769; bit_min[2892]=32; k[2892]=171564ULL; // M22769 has a factor: 7812681433
exp[2893]=23531; bit_min[2893]=23; k[2893]=205ULL; // M23531 has a factor: 9647711
exp[2894]=23609; bit_min[2894]=34; k[2894]=410431ULL; // M23609 has a factor: 19379730959
exp[2895]=23977; bit_min[2895]=32; k[2895]=131355ULL; // M23977 has a factor: 6298997671
exp[2896]=24517; bit_min[2896]=60; k[2896]=24456131394587ULL; // M24517 has a factor: 1199181946802178959
exp[2897]=25741; bit_min[2897]=30; k[2897]=38691ULL; // M25741 has a factor: 1991890063
exp[2898]=27059; bit_min[2898]=37; k[2898]=2566936ULL; // M27059 has a factor: 138917442449
exp[2899]=27127; bit_min[2899]=32; k[2899]=143432ULL; // M27127 has a factor: 7781759729
exp[2900]=27431; bit_min[2900]=63; k[2900]=200413741840288ULL; // M27431 has a factor: 10995098704841880257
exp[2901]=27527; bit_min[2901]=27; k[2901]=4437ULL; // M27527 has a factor: 244274599
exp[2902]=28867; bit_min[2902]=21; k[2902]=48ULL; // M28867 has a factor: 2771233
exp[2903]=30089; bit_min[2903]=34; k[2903]=427999ULL; // M30089 has a factor: 25756123823
exp[2904]=30697; bit_min[2904]=25; k[2904]=900ULL; // M30697 has a factor: 55254601
exp[2905]=30803; bit_min[2905]=36; k[2905]=2057397ULL; // M30803 has a factor: 126747999583
exp[2906]=31771; bit_min[2906]=42; k[2906]=105769340ULL; // M31771 has a factor: 6720795402281
exp[2907]=33343; bit_min[2907]=21; k[2907]=48ULL; // M33343 has a factor: 3200929
exp[2908]=36551; bit_min[2908]=20; k[2908]=16ULL; // M36551 has a factor: 1169633
exp[2909]=36671; bit_min[2909]=39; k[2909]=9585880ULL; // M36671 has a factor: 703047610961
exp[2910]=37831; bit_min[2910]=46; k[2910]=934390869ULL; // M37831 has a factor: 70697881930279
exp[2911]=37897; bit_min[2911]=45; k[2911]=583534260ULL; // M37897 has a factor: 44228395702441
exp[2912]=38119; bit_min[2912]=33; k[2912]=136964ULL; // M38119 has a factor: 10441861433
exp[2913]=38201; bit_min[2913]=48; k[2913]=4243653448ULL; // M38201 has a factor: 324223610734097
exp[2914]=38351; bit_min[2914]=29; k[2914]=10344ULL; // M38351 has a factor: 793405489
exp[2915]=39103; bit_min[2915]=23; k[2915]=125ULL; // M39103 has a factor: 9775751
exp[2916]=39301; bit_min[2916]=40; k[2916]=14708951ULL; // M39301 has a factor: 1156152966503
exp[2917]=39439; bit_min[2917]=20; k[2917]=20ULL; // M39439 has a factor: 1577561
exp[2918]=39709; bit_min[2918]=41; k[2918]=43967840ULL; // M39709 has a factor: 3491837917121
exp[2919]=41809; bit_min[2919]=31; k[2919]=48696ULL; // M41809 has a factor: 4071862129
exp[2920]=41893; bit_min[2920]=37; k[2920]=2535200ULL; // M41893 has a factor: 212414267201
exp[2921]=44953; bit_min[2921]=65; k[2921]=800727407977800ULL; // M44953 has a factor: 71990198341652086801
exp[2922]=45191; bit_min[2922]=38; k[2922]=3886960ULL; // M45191 has a factor: 351311218721
exp[2923]=45553; bit_min[2923]=28; k[2923]=3515ULL; // M45553 has a factor: 320237591
exp[2924]=45737; bit_min[2924]=46; k[2924]=901344379ULL; // M45737 has a factor: 82449575724647
exp[2925]=47237; bit_min[2925]=33; k[2925]=161140ULL; // M47237 has a factor: 15223540361
exp[2926]=48023; bit_min[2926]=63; k[2926]=168994641823228ULL; // M48023 has a factor: 16231259368553756489
exp[2927]=49783; bit_min[2927]=54; k[2927]=182746118961ULL; // M49783 has a factor: 18195300080470927
exp[2928]=50387; bit_min[2928]=20; k[2928]=13ULL; // M50387 has a factor: 1310063
exp[2929]=51461; bit_min[2929]=28; k[2929]=2940ULL; // M51461 has a factor: 302590681
exp[2930]=51637; bit_min[2930]=59; k[2930]=8918517345368ULL; // M51637 has a factor: 921050960325534833
exp[2931]=52009; bit_min[2931]=40; k[2931]=14802992ULL; // M52009 has a factor: 1539777621857
exp[2932]=52069; bit_min[2932]=20; k[2932]=12ULL; // M52069 has a factor: 1249657
exp[2933]=52673; bit_min[2933]=34; k[2933]=307768ULL; // M52673 has a factor: 32422127729
exp[2934]=52733; bit_min[2934]=21; k[2934]=36ULL; // M52733 has a factor: 3796777
exp[2935]=54151; bit_min[2935]=43; k[2935]=119255753ULL; // M54151 has a factor: 12915636561407
exp[2936]=54217; bit_min[2936]=21; k[2936]=23ULL; // M54217 has a factor: 2493983
exp[2937]=54973; bit_min[2937]=31; k[2937]=30972ULL; // M54973 has a factor: 3405247513
exp[2938]=55817; bit_min[2938]=55; k[2938]=590558954539ULL; // M55817 has a factor: 65926458331006727
exp[2939]=57037; bit_min[2939]=30; k[2939]=13532ULL; // M57037 has a factor: 1543649369
exp[2940]=57667; bit_min[2940]=22; k[2940]=68ULL; // M57667 has a factor: 7842713
exp[2941]=59107; bit_min[2941]=36; k[2941]=651797ULL; // M59107 has a factor: 77051530559
exp[2942]=59453; bit_min[2942]=21; k[2942]=31ULL; // M59453 has a factor: 3686087
exp[2943]=60943; bit_min[2943]=25; k[2943]=456ULL; // M60943 has a factor: 55580017
exp[2944]=61463; bit_min[2944]=48; k[2944]=4502603517ULL; // M61463 has a factor: 553487039930743
exp[2945]=62311; bit_min[2945]=51; k[2945]=25518891521ULL; // M62311 has a factor: 3180215299130063
exp[2946]=64033; bit_min[2946]=23; k[2946]=123ULL; // M64033 has a factor: 15752119
exp[2947]=64937; bit_min[2947]=48; k[2947]=4046271639ULL; // M64937 has a factor: 525505482843487
exp[2948]=65419; bit_min[2948]=31; k[2948]=32477ULL; // M65419 has a factor: 4249225727
exp[2949]=66173; bit_min[2949]=49; k[2949]=5510461032ULL; // M66173 has a factor: 729287475741073
exp[2950]=66457; bit_min[2950]=41; k[2950]=27429107ULL; // M66457 has a factor: 3645712327799
exp[2951]=67843; bit_min[2951]=55; k[2951]=325385204073ULL; // M67843 has a factor: 44150216799849079
exp[2952]=67961; bit_min[2952]=43; k[2952]=118378344ULL; // M67961 has a factor: 16090221273169
exp[2953]=68113; bit_min[2953]=27; k[2953]=1172ULL; // M68113 has a factor: 159656873
exp[2954]=68993; bit_min[2954]=68; k[2954]=3551078934015652ULL; // M68993 has a factor: 489999177789083756873
exp[2955]=70163; bit_min[2955]=20; k[2955]=13ULL; // M70163 has a factor: 1824239
exp[2956]=70489; bit_min[2956]=26; k[2956]=932ULL; // M70489 has a factor: 131391497
exp[2957]=70709; bit_min[2957]=23; k[2957]=84ULL; // M70709 has a factor: 11879113
exp[2958]=72019; bit_min[2958]=21; k[2958]=17ULL; // M72019 has a factor: 2448647
exp[2959]=73453; bit_min[2959]=20; k[2959]=8ULL; // M73453 has a factor: 1175249
exp[2960]=74353; bit_min[2960]=24; k[2960]=120ULL; // M74353 has a factor: 17844721
exp[2961]=75577; bit_min[2961]=41; k[2961]=27314427ULL; // M75577 has a factor: 4128684898759
exp[2962]=75679; bit_min[2962]=30; k[2962]=8381ULL; // M75679 has a factor: 1268531399
exp[2963]=75743; bit_min[2963]=25; k[2963]=352ULL; // M75743 has a factor: 53323073
exp[2964]=76777; bit_min[2964]=65; k[2964]=326276663553819ULL; // M76777 has a factor: 50101086795343122727
exp[2965]=78367; bit_min[2965]=28; k[2965]=2432ULL; // M78367 has a factor: 381177089
exp[2966]=78889; bit_min[2966]=29; k[2966]=5556ULL; // M78889 has a factor: 876614569
exp[2967]=79697; bit_min[2967]=25; k[2967]=375ULL; // M79697 has a factor: 59772751
exp[2968]=79907; bit_min[2968]=67; k[2968]=1176963463813020ULL; // M79907 has a factor: 188095239005813978281
exp[2969]=80989; bit_min[2969]=35; k[2969]=382056ULL; // M80989 has a factor: 61884666769
exp[2970]=81677; bit_min[2970]=63; k[2970]=107482345238587ULL; // M81677 has a factor: 17557671024104140799
exp[2971]=81953; bit_min[2971]=28; k[2971]=2472ULL; // M81953 has a factor: 405175633
exp[2972]=82757; bit_min[2972]=25; k[2972]=220ULL; // M82757 has a factor: 36413081
exp[2973]=83077; bit_min[2973]=28; k[2973]=2115ULL; // M83077 has a factor: 351415711
exp[2974]=84673; bit_min[2974]=25; k[2974]=327ULL; // M84673 has a factor: 55376143
exp[2975]=85259; bit_min[2975]=66; k[2975]=749972138669521ULL; // M85259 has a factor: 127883749141649381879
exp[2976]=85451; bit_min[2976]=53; k[2976]=66283781596ULL; // M85451 has a factor: 11328030842319593
exp[2977]=86017; bit_min[2977]=24; k[2977]=128ULL; // M86017 has a factor: 22020353
exp[2978]=86263; bit_min[2978]=28; k[2978]=1788ULL; // M86263 has a factor: 308476489
exp[2979]=87977; bit_min[2979]=37; k[2979]=1331719ULL; // M87977 has a factor: 234321284927
exp[2980]=88117; bit_min[2980]=55; k[2980]=281534390120ULL; // M88117 has a factor: 49615931708408081
exp[2981]=88129; bit_min[2981]=21; k[2981]=12ULL; // M88129 has a factor: 2115097
exp[2982]=88321; bit_min[2982]=42; k[2982]=28771859ULL; // M88321 has a factor: 5082318717479
exp[2983]=88657; bit_min[2983]=20; k[2983]=8ULL; // M88657 has a factor: 1418513
exp[2984]=89627; bit_min[2984]=67; k[2984]=1034071685662833ULL; // M89627 has a factor: 185361485941805466583
exp[2985]=90289; bit_min[2985]=38; k[2985]=3010440ULL; // M90289 has a factor: 543619234321
exp[2986]=90631; bit_min[2986]=58; k[2986]=1672481792241ULL; // M90631 has a factor: 303157394625188143
exp[2987]=90997; bit_min[2987]=63; k[2987]=57523211090103ULL; // M90997 has a factor: 10468879279132205383
exp[2988]=92221; bit_min[2988]=61; k[2988]=15102199313471ULL; // M92221 has a factor: 2785479845775218183
exp[2989]=92269; bit_min[2989]=32; k[2989]=24567ULL; // M92269 has a factor: 4533545047
exp[2990]=93901; bit_min[2990]=33; k[2990]=58463ULL; // M93901 has a factor: 10979468327
exp[2991]=94207; bit_min[2991]=60; k[2991]=9388023686153ULL; // M94207 has a factor: 1768835094802831343
exp[2992]=94961; bit_min[2992]=26; k[2992]=363ULL; // M94961 has a factor: 68941687
exp[2993]=95027; bit_min[2993]=31; k[2993]=15417ULL; // M95027 has a factor: 2930062519
exp[2994]=96457; bit_min[2994]=60; k[2994]=9195133553132ULL; // M96457 has a factor: 1773869994268906649
exp[2995]=96601; bit_min[2995]=20; k[2995]=8ULL; // M96601 has a factor: 1545617
exp[2996]=96911; bit_min[2996]=36; k[2996]=372229ULL; // M96911 has a factor: 72146169239
exp[2997]=97171; bit_min[2997]=20; k[2997]=8ULL; // M97171 has a factor: 1554737
exp[2998]=97367; bit_min[2998]=43; k[2998]=70507452ULL; // M97367 has a factor: 13730198157769
exp[2999]=98729; bit_min[2999]=58; k[2999]=1999725794919ULL; // M98729 has a factor: 394861856013115903
exp[3000]=99767; bit_min[3000]=57; k[3000]=817362385084ULL; // M99767 has a factor: 163091586145350857

0 comments on commit f81b34f

Please sign in to comment.