#include "bench7.h" /* ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c c This is a check routine for Benchmark 7. All it will do is verify c that the solutions found are the ones expected from previous runs. c c Parameters: c c Provided by calling routine: c NBUFS = Length of A stream in buffers c START = Array of starting positions of solutions in the E stream c LENTH = Array holding the length of each solution c NN = Length of these arrays, i.e. the number of solutions c c Returned by this routine: c OK = Array of checks: c 0 if START,LENTH agree with stored results c 1 if not c -1 for indices beyond MAXCKS = number of stored results c IER = Error flag array c IER(0) = number of expected solutions, if diff from NN c IER(1) = number of solutions that don't check c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc */ void c7( int nbufs, int64 *start, int64 *length, int *OK, int64 nn, int *ier) { // Correct solutions - (1)start point and (2)length of run of zeros // number of check values MAXCKS defined in bench7.h // currently = 1000: 200 buffers with 5 per buffer int64 ckstart[MAXCKS] = //bufnum { 1999973, 2291636, 3999973, 4583302, 327679885, // 0 329679971, 329971638, 331679970, 332263303, 655359886, 657359971, 657651637, 659359971, 659943303, 983039884, 985039973, 985331637, 987039972, 987623303, 1310719883, 1312719969, 1313011638, 1314719973, 1315303303, 1638399886, 1640399973, 1640691638, 1642399973, 1642983298, 1966079886, 1968079973, 1968371637, 1970079972, 1970663302, 2293759886, 2295759973, 2296051636, 2297759972, 2298343303, 2621439886, 2623439973, 2623731638, 2625439970, 2626023303, 2949119883, 2951119969, 2951411635, 2953119973, 2953703298, 3276799885, 3278799971, 3279091638, 3280799972, 3281383301, 3604479886, // 10 3606479971, 3606771638, 3608479973, 3609063302, 3932159886, 3934159973, 3934451635, 3936159973, 3936743298, 4259839886, 4261839969, 4262131638, 4263839971, 4264423302, 4587519880, 4589519971, 4589811637, 4591519973, 4592103296, 4915199884, 4917199969, 4917491634, 4919199972, 4919783303, 5242879886, 5244879973, 5245171637, 5246879973, 5247463303, 5570559885, 5572559973, 5572851636, 5574559973, 5575143303, 5898239886, 5900239971, 5900531638, 5902239970, 5902823302, 6225919886, 6227919973, 6228211636, 6229919971, 6230503302, 6553599885, 6555599973, 6555891638, 6557599970, 6558183302, 6881279886, // 20 6883279973, 6883571635, 6885279973, 6885863301, 7208959886, 7210959973, 7211251636, 7212959973, 7213543303, 7536639885, 7538639973, 7538931633, 7540639972, 7541223301, 7864319885, 7866319973, 7866611637, 7868319973, 7868903303, 8191999886, 8193999973, 8194291638, 8195999972, 8196583302, 8519679885, 8521679971, 8521971636, 8523679973, 8524263303, 8847359885, 8849359973, 8849651637, 8851359973, 8851943301, 9175039886, 9177039973, 9177331637, 9179039973, 9179623303, 9502719886, 9504719973, 9505011634, 9506719973, 9507303303, 9830399886, 9832399973, 9832691635, 9834399973, 9834983303, 10158079886, // 30 10160079973, 10160371637, 10162079973, 10162663302, 10485759884, 10487759970, 10488051637, 10489759970, 10490343299, 10813439885, 10815439973, 10815731637, 10817439972, 10818023303, 11141119886, 11143119973, 11143411635, 11145119972, 11145703301, 11468799885, 11470799973, 11471091636, 11472799973, 11473383303, 11796479886, 11798479970, 11798771638, 11800479971, 11801063303, 12124159886, 12126159971, 12126451638, 12128159972, 12128743303, 12451839886, 12453839973, 12454131638, 12455839973, 12456423303, 12779519885, 12781519970, 12781811635, 12783519973, 12784103301, 13107199886, 13109199971, 13109491638, 13111199972, 13111783302, 13434879886, // 40 13436879973, 13437171638, 13438879972, 13439463298, 13762559886, 13764559971, 13764851638, 13766559973, 13767143303, 14090239885, 14092239973, 14092531637, 14094239973, 14094823303, 14417919883, 14419919970, 14420211636, 14421919973, 14422503302, 14745599886, 14747599973, 14747891637, 14749599969, 14750183299, 15073279882, 15075279971, 15075571637, 15077279971, 15077863303, 15400959885, 15402959970, 15403251638, 15404959973, 15405543303, 15728639883, 15730639971, 15730931638, 15732639973, 15733223303, 16056319886, 16058319971, 16058611637, 16060319972, 16060903303, 16383999885, 16385999973, 16386291638, 16387999973, 16388583301, 16711679886, // 50 16713679973, 16713971638, 16715679973, 16716263303, 17039359885, 17041359967, 17041651637, 17043359973, 17043943300, 17367039884, 17369039970, 17369331633, 17371039973, 17371623301, 17694719886, 17696719973, 17697011638, 17698719973, 17699303303, 18022399882, 18024399973, 18024691636, 18026399972, 18026983303, 18350079884, 18352079970, 18352371638, 18354079972, 18354663303, 18677759883, 18679759973, 18680051636, 18681759968, 18682343303, 19005439886, 19007439969, 19007731637, 19009439971, 19010023302, 19333119885, 19335119971, 19335411636, 19337119973, 19337703301, 19660799884, 19662799971, 19663091638, 19664799972, 19665383303, 19988479883, // 60 19990479973, 19990771636, 19992479973, 19993063301, 20316159880, 20318159973, 20318451638, 20320159973, 20320743303, 20643839885, 20645839973, 20646131638, 20647839971, 20648423303, 20971519886, 20973519971, 20973811638, 20975519971, 20976103302, 21299199886, 21301199973, 21301491638, 21303199972, 21303783303, 21626879886, 21628879969, 21629171637, 21630879971, 21631463303, 21954559886, 21956559970, 21956851637, 21958559972, 21959143302, 22282239886, 22284239973, 22284531638, 22286239973, 22286823303, 22609919885, 22611919971, 22612211637, 22613919973, 22614503302, 22937599881, 22939599971, 22939891637, 22941599971, 22942183303, 23265279885, // 70 23267279973, 23267571638, 23269279973, 23269863301, 23592959886, 23594959971, 23595251637, 23596959971, 23597543303, 23920639886, 23922639971, 23922931638, 23924639970, 23925223302, 24248319886, 24250319973, 24250611637, 24252319973, 24252903301, 24575999885, 24577999969, 24578291637, 24579999971, 24580583303, 24903679885, 24905679973, 24905971638, 24907679972, 24908263303, 25231359884, 25233359973, 25233651638, 25235359971, 25235943302, 25559039881, 25561039971, 25561331638, 25563039972, 25563623303, 25886719885, 25888719971, 25889011635, 25890719973, 25891303302, 26214399883, 26216399973, 26216691638, 26218399972, 26218983301, 26542079884, // 80 26544079971, 26544371634, 26546079971, 26546663303, 26869759885, 26871759971, 26872051638, 26873759972, 26874343302, 27197439884, 27199439973, 27199731638, 27201439972, 27202023299, 27525119886, 27527119973, 27527411638, 27529119971, 27529703301, 27852799883, 27854799970, 27855091638, 27856799973, 27857383300, 28180479885, 28182479969, 28182771638, 28184479973, 28185063301, 28508159885, 28510159971, 28510451638, 28512159973, 28512743303, 28835839886, 28837839973, 28838131638, 28839839973, 28840423302, 29163519884, 29165519973, 29165811637, 29167519970, 29168103303, 29491199886, 29493199971, 29493491634, 29495199973, 29495783303, 29818879886, // 90 29820879973, 29821171637, 29822879971, 29823463303, 30146559886, 30148559973, 30148851638, 30150559973, 30151143303, 30474239886, 30476239969, 30476531637, 30478239971, 30478823302, 30801919886, 30803919973, 30804211638, 30805919973, 30806503303, 31129599886, 31131599970, 31131891637, 31133599973, 31134183303, 31457279885, 31459279973, 31459571637, 31461279973, 31461863299, 31784959882, 31786959971, 31787251638, 31788959973, 31789543303, 32112639886, 32114639973, 32114931637, 32116639973, 32117223303, 32440319884, 32442319973, 32442611638, 32444319971, 32444903302, 32767999886, 32769999973, 32770291638, 32771999973, 32772583301, 33095679886, //100 33097679973, 33097971638, 33099679973, 33100263303, 33423359884, 33425359973, 33425651638, 33427359971, 33427943303, 33751039885, 33753039971, 33753331637, 33755039973, 33755623303, 34078719886, 34080719971, 34081011638, 34082719973, 34083303303, 34406399886, 34408399971, 34408691638, 34410399972, 34410983303, 34734079886, 34736079973, 34736371634, 34738079972, 34738663303, 35061759884, 35063759973, 35064051638, 35065759973, 35066343302, 35389439884, 35391439973, 35391731636, 35393439972, 35394023303, 35717119884, 35719119971, 35719411637, 35721119970, 35721703299, 36044799886, 36046799969, 36047091635, 36048799971, 36049383302, 36372479886, //110 36374479973, 36374771638, 36376479970, 36377063303, 36700159885, 36702159971, 36702451638, 36704159973, 36704743303, 37027839884, 37029839970, 37030131637, 37031839972, 37032423301, 37355519886, 37357519973, 37357811638, 37359519972, 37360103303, 37683199886, 37685199971, 37685491638, 37687199973, 37687783303, 38010879886, 38012879971, 38013171638, 38014879971, 38015463303, 38338559886, 38340559970, 38340851638, 38342559972, 38343143303, 38666239886, 38668239973, 38668531635, 38670239973, 38670823302, 38993919886, 38995919971, 38996211635, 38997919973, 38998503303, 39321599884, 39323599973, 39323891638, 39325599972, 39326183303, 39649279882, //120 39651279973, 39651571638, 39653279973, 39653863303, 39976959884, 39978959973, 39979251638, 39980959973, 39981543303, 40304639881, 40306639970, 40306931638, 40308639973, 40309223298, 40632319886, 40634319969, 40634611638, 40636319973, 40636903303, 40959999886, 40961999973, 40962291638, 40963999973, 40964583303, 41287679886, 41289679973, 41289971638, 41291679972, 41292263299, 41615359886, 41617359971, 41617651637, 41619359973, 41619943303, 41943039886, 41945039971, 41945331638, 41947039973, 41947623302, 42270719882, 42272719970, 42273011637, 42274719972, 42275303303, 42598399886, 42600399971, 42600691638, 42602399970, 42602983302, 42926079886, //130 42928079973, 42928371636, 42930079973, 42930663303, 43253759886, 43255759970, 43256051632, 43257759970, 43258343303, 43581439886, 43583439973, 43583731638, 43585439973, 43586023303, 43909119883, 43911119970, 43911411635, 43913119970, 43913703301, 44236799885, 44238799973, 44239091637, 44240799973, 44241383303, 44564479885, 44566479970, 44566771638, 44568479970, 44569063303, 44892159886, 44894159970, 44894451638, 44896159972, 44896743302, 45219839885, 45221839971, 45222131638, 45223839972, 45224423303, 45547519883, 45549519973, 45549811635, 45551519973, 45552103303, 45875199886, 45877199971, 45877491637, 45879199973, 45879783303, 46202879885, //140 46204879973, 46205171637, 46206879973, 46207463302, 46530559885, 46532559971, 46532851637, 46534559970, 46535143303, 46858239885, 46860239971, 46860531632, 46862239971, 46862823303, 47185919885, 47187919973, 47188211638, 47189919972, 47190503301, 47513599885, 47515599971, 47515891638, 47517599973, 47518183302, 47841279885, 47843279968, 47843571636, 47845279973, 47845863299, 48168959885, 48170959967, 48171251637, 48172959972, 48173543303, 48496639886, 48498639973, 48498931637, 48500639970, 48501223303, 48824319884, 48826319973, 48826611638, 48828319973, 48828903299, 49151999886, 49153999971, 49154291637, 49155999972, 49156583302, 49479679885, //150 49481679971, 49481971636, 49483679972, 49484263303, 49807359886, 49809359970, 49809651638, 49811359969, 49811943303, 50135039885, 50137039973, 50137331635, 50139039970, 50139623302, 50462719886, 50464719973, 50465011638, 50466719973, 50467303303, 50790399885, 50792399970, 50792691638, 50794399973, 50794983301, 51118079885, 51120079973, 51120371636, 51122079972, 51122663303, 51445759885, 51447759971, 51448051638, 51449759971, 51450343303, 51773439886, 51775439973, 51775731636, 51777439973, 51778023303, 52101119886, 52103119973, 52103411638, 52105119973, 52105703302, 52428799884, 52430799967, 52431091638, 52432799973, 52433383302, 52756479884, //160 52758479969, 52758771638, 52760479973, 52761063299, 53084159886, 53086159973, 53086451638, 53088159972, 53088743303, 53411839884, 53413839973, 53414131636, 53415839967, 53416423302, 53739519885, 53741519973, 53741811638, 53743519973, 53744103301, 54067199883, 54069199973, 54069491636, 54071199973, 54071783303, 54394879885, 54396879973, 54397171637, 54398879969, 54399463301, 54722559886, 54724559970, 54724851638, 54726559972, 54727143298, 55050239886, 55052239973, 55052531637, 55054239971, 55054823303, 55377919886, 55379919973, 55380211638, 55381919972, 55382503303, 55705599885, 55707599970, 55707891637, 55709599972, 55710183298, 56033279885, //170 56035279971, 56035571636, 56037279973, 56037863303, 56360959885, 56362959970, 56363251638, 56364959972, 56365543302, 56688639884, 56690639971, 56690931637, 56692639973, 56693223303, 57016319886, 57018319973, 57018611638, 57020319973, 57020903300, 57343999885, 57345999971, 57346291638, 57347999972, 57348583303, 57671679883, 57673679971, 57673971636, 57675679972, 57676263299, 57999359883, 58001359973, 58001651638, 58003359972, 58003943298, 58327039885, 58329039971, 58329331637, 58331039972, 58331623303, 58654719885, 58656719973, 58657011636, 58658719970, 58659303303, 58982399886, 58984399970, 58984691635, 58986399972, 58986983302, 59310079886, //180 59312079973, 59312371638, 59314079972, 59314663299, 59637759884, 59639759971, 59640051638, 59641759973, 59642343303, 59965439885, 59967439973, 59967731638, 59969439972, 59970023300, 60293119884, 60295119971, 60295411637, 60297119973, 60297703303, 60620799884, 60622799969, 60623091637, 60624799971, 60625383303, 60948479885, 60950479973, 60950771638, 60952479972, 60953063303, 61276159883, 61278159971, 61278451638, 61280159970, 61280743300, 61603839883, 61605839970, 61606131638, 61607839972, 61608423302, 61931519886, 61933519973, 61933811636, 61935519971, 61936103302, 62259199886, 62261199973, 62261491638, 62263199972, 62263783303, 62586879884, //190 62588879969, 62589171637, 62590879973, 62591463302, 62914559885, 62916559967, 62916851638, 62918559969, 62919143303, 63242239886, 63244239973, 63244531638, 63246239973, 63246823301, 63569919885, 63571919969, 63572211638, 63573919973, 63574503299, 63897599886, 63899599973, 63899891638, 63901599973, 63902183302, 64225279886, 64227279970, 64227571638, 64229279973, 64229863298, 64552959886, 64554959973, 64555251635, 64556959973, 64557543303, 64880639884, 64882639973, 64882931637, 64884639973, 64885223302, 65208319886, 65210319973, 65210611638, 65212319971, 65212903301, 0 }; int cklength[MAXCKS] = { 510, 509, 507, 509, 191, 509, 508, 510, 508, 192, /* 0*/ 512, 511, 509, 508, 192, 510, 508, 508, 508, 193, 516, 507, 508, 511, 191, 509, 508, 507, 513, 190, 509, 508, 508, 510, 191, 507, 509, 509, 508, 189, 507, 509, 512, 510, 194, 513, 510, 507, 513, 192, 509, 512, 509, 510, 193, 511, 508, 507, 509, 190, /* 10*/ 510, 510, 507, 513, 194, 511, 508, 510, 510, 195, 511, 509, 508, 516, 195, 512, 518, 508, 508, 191, 510, 511, 507, 509, 190, 507, 512, 508, 508, 192, 515, 507, 510, 512, 191, 512, 509, 509, 512, 190, 507, 509, 512, 509, 190, 510, 511, 507, 510, 190, /* 20*/ 508, 512, 509, 508, 190, 511, 512, 509, 514, 191, 508, 509, 507, 510, 193, 509, 508, 510, 509, 194, 509, 511, 507, 509, 191, 507, 509, 508, 510, 190, 510, 508, 507, 508, 191, 508, 511, 507, 509, 190, 507, 513, 507, 511, 191, 508, 510, 509, 509, 193, /* 30*/ 510, 508, 510, 515, 191, 508, 509, 509, 508, 190, 507, 513, 508, 512, 191, 507, 511, 507, 509, 193, 510, 507, 510, 510, 193, 509, 507, 508, 508, 192, 510, 507, 509, 511, 192, 511, 510, 509, 510, 193, 509, 508, 508, 512, 191, 507, 508, 508, 513, 189, /* 40*/ 509, 509, 509, 509, 190, 508, 508, 508, 508, 193, 510, 509, 508, 509, 189, 507, 513, 513, 513, 193, 511, 509, 510, 508, 192, 511, 509, 507, 508, 194, 509, 507, 508, 508, 190, 509, 508, 510, 508, 191, 507, 507, 508, 510, 189, 507, 507, 507, 509, 192, /* 50*/ 513, 509, 507, 511, 193, 513, 512, 514, 513, 190, 507, 507, 508, 509, 196, 508, 514, 508, 508, 191, 510, 508, 509, 509, 193, 508, 509, 512, 509, 189, 511, 510, 510, 510, 190, 509, 509, 508, 511, 192, 510, 508, 508, 508, 194, 507, 509, 509, 510, 195, /* 60*/ 509, 509, 507, 508, 195, 508, 509, 514, 508, 190, 511, 507, 510, 512, 190, 510, 509, 512, 508, 190, 512, 510, 509, 508, 190, 512, 508, 508, 509, 190, 508, 509, 507, 508, 192, 509, 509, 507, 511, 195, 509, 510, 509, 508, 190, 509, 508, 507, 511, 189, /* 70*/ 511, 508, 510, 511, 189, 514, 513, 511, 511, 190, 509, 509, 508, 511, 190, 511, 513, 509, 510, 191, 507, 507, 509, 509, 191, 508, 510, 511, 509, 198, 509, 508, 511, 508, 191, 510, 510, 507, 509, 192, 507, 507, 510, 510, 194, 509, 513, 509, 508, 190, /* 80*/ 509, 508, 508, 510, 195, 512, 507, 514, 514, 191, 508, 512, 514, 511, 192, 512, 507, 507, 511, 191, 511, 508, 508, 513, 190, 513, 507, 507, 508, 190, 507, 509, 508, 511, 191, 508, 513, 510, 508, 189, 510, 513, 507, 509, 190, 507, 508, 511, 510, 190, /* 90*/ 507, 508, 508, 511, 192, 512, 508, 509, 509, 191, 507, 509, 507, 509, 193, 511, 508, 507, 508, 193, 507, 509, 508, 512, 194, 509, 509, 508, 510, 191, 507, 508, 508, 508, 192, 507, 511, 509, 509, 193, 508, 507, 507, 513, 191, 509, 507, 507, 509, 193, /*100*/ 509, 507, 509, 508, 190, 509, 508, 514, 510, 190, 512, 510, 509, 512, 190, 510, 507, 510, 508, 189, 507, 511, 508, 508, 191, 507, 511, 507, 510, 191, 508, 509, 508, 508, 192, 509, 511, 510, 512, 189, 511, 513, 511, 509, 189, 510, 507, 516, 508, 193, /*110*/ 510, 507, 508, 509, 192, 510, 511, 510, 512, 190, 509, 507, 510, 510, 190, 511, 510, 507, 508, 190, 509, 507, 510, 508, 190, 511, 508, 508, 510, 191, 508, 513, 507, 511, 194, 512, 512, 507, 509, 192, 508, 508, 508, 510, 193, 509, 507, 507, 510, 191, /*120*/ 508, 512, 507, 509, 194, 510, 510, 515, 513, 191, 511, 507, 507, 508, 189, 507, 507, 508, 508, 190, 507, 508, 509, 512, 190, 509, 508, 511, 509, 190, 510, 509, 507, 509, 196, 510, 508, 508, 509, 190, 509, 515, 510, 510, 191, 507, 515, 507, 508, 190, /*130*/ 512, 514, 515, 508, 189, 507, 507, 507, 509, 194, 510, 512, 510, 510, 190, 508, 509, 508, 511, 192, 510, 509, 512, 508, 189, 510, 509, 508, 511, 191, 510, 508, 508, 511, 194, 510, 510, 508, 508, 193, 511, 508, 509, 508, 191, 507, 509, 509, 510, 191, /*140*/ 509, 508, 510, 510, 191, 509, 513, 509, 509, 192, 507, 508, 508, 510, 192, 509, 507, 510, 510, 191, 512, 510, 509, 512, 190, 515, 508, 508, 510, 189, 507, 508, 510, 508, 195, 510, 507, 507, 514, 191, 510, 508, 508, 510, 191, 511, 509, 511, 510, 191, /*150*/ 513, 507, 511, 508, 191, 507, 511, 510, 509, 190, 507, 507, 509, 510, 190, 511, 507, 507, 512, 193, 510, 511, 510, 515, 191, 510, 509, 509, 509, 191, 508, 511, 514, 508, 189, 507, 507, 507, 511, 191, 513, 509, 507, 509, 192, 511, 510, 508, 513, 189, /*160*/ 507, 507, 508, 509, 192, 507, 510, 514, 510, 194, 508, 507, 508, 510, 194, 510, 509, 510, 509, 190, 509, 509, 512, 512, 190, 510, 508, 510, 513, 190, 507, 508, 513, 510, 190, 507, 507, 508, 508, 191, 512, 508, 508, 514, 192, 509, 509, 507, 509, 191, /*170*/ 510, 507, 509, 509, 192, 510, 508, 508, 509, 190, 507, 510, 512, 515, 190, 509, 507, 513, 508, 194, 511, 509, 509, 515, 194, 508, 507, 512, 515, 191, 512, 509, 509, 508, 190, 508, 514, 511, 509, 189, 510, 510, 511, 512, 190, 510, 508, 508, 514, 192, /*180*/ 509, 507, 507, 508, 191, 507, 507, 508, 515, 194, 509, 509, 507, 510, 193, 513, 513, 509, 512, 191, 510, 507, 510, 510, 195, 511, 508, 510, 511, 193, 510, 510, 511, 510, 191, 507, 509, 509, 511, 190, 508, 507, 508, 508, 191, 511, 510, 511, 509, 191, /*190*/ 514, 507, 512, 511, 190, 507, 507, 510, 510, 190, 512, 510, 507, 513, 190, 507, 507, 509, 512, 190, 510, 509, 507, 513, 189, 507, 513, 507, 508, 191, 507, 510, 508, 510, 190, 508, 509, 515, 510, 0 }; int errcnt, nsols, i; // Initialize stuff ier[0] = 0; ier[1] = 0; errcnt = 0; for (i=0; i MAXCKS) for (i=MAXCKS; i 0 ) ier[1] = errcnt; return; }