263 const g2int mallow = 1073741825;
264 static g2int ifeed = 12;
265 static g2int ifirst = 0;
268 g2int i__1, i__2, i__3;
271 static g2int j, k, l;
273 static g2int ired, kinc, mina, maxa, minb, maxb, minc, maxc, ibxx2[31];
274 static char cfeed[1];
275 static g2int nenda, nendb, ibita, ibitb, minak, minbk, maxak, maxbk,
276 minck, maxck, nouta, lmiss, itest, nount;
280 static g2int ibitbs, mislla, misllb, misllc, iersav, lminpk, ktotal,
281 kounta, kountb, kstart, mstart, mintst, maxtst,
282 kounts, mintstk, maxtstk;
308 *(
unsigned char *)cfeed = (
char) ifeed;
328 kinc = (*inc > 1) ? *inc : 1;
337 for (j = 1; j <= 30; ++j) {
338 ibxx2[j] = ibxx2[j - 1] << 1;
384 i__1 = kstart + lminpk - 1;
386 nenda = (i__1 < *nxy) ? i__1 : *nxy;
387 if (*nxy - nenda <= lminpk / 2) {
404 if (nenda != *nxy && ic[kstart] == ic[kstart + 1]) {
411 for (k = kstart + 1; k <= i__1; ++k) {
413 if (ic[k] != ic[kstart]) {
415 i__2 = nenda, i__3 = k - 1;
417 nenda = (i__2 > i__3) ? i__2 : i__3;
427 }
else if (*is523 == 1) {
431 for (k = kstart + 1; k <= i__1; ++k) {
433 if (ic[k] != *missp) {
435 if (ic[k] != ic[kstart]) {
437 i__2 = nenda, i__3 = k - 1;
439 nenda = (i__2 > i__3) ? i__2 : i__3;
455 for (k = kstart + 1; k <= i__1; ++k) {
457 if (ic[k] != *missp && ic[k] != *misss) {
459 if (ic[k] != ic[kstart]) {
461 i__2 = nenda, i__3 = k - 1;
463 nenda = (i__2 > i__3) ? i__2 : i__3;
482 for (k = kstart; k <= i__1; ++k) {
494 }
else if (*is523 == 1) {
497 for (k = kstart; k <= i__1; ++k) {
498 if (ic[k] == *missp) {
516 for (k = kstart; k <= i__1; ++k) {
517 if (ic[k] == *missp || ic[k] == *misss) {
534 kounta = nenda - kstart + 1;
540 if (mina != mallow) {
556 itest = maxa - mina + lmiss;
558 for (ibita = 0; ibita <= 30; ++ibita) {
559 if (itest < ibxx2[ibita]) {
580 if (ktotal >= *nxy) {
610 for (k = mstart + 1; k <= i__1; ++k) {
612 if (ic[k] != ic[mstart]) {
630 i__3 = ktotal + lminpk;
632 i__1 = nendb, i__2 = (i__3 < *nxy) ? i__3 : *nxy;
634 nendb = (i__1 > i__2) ? i__1 : i__2;
637 if (*nxy - nendb <= lminpk / 2) {
651 for (k = mstart; k <= i__1; ++k) {
667 }
else if (*is523 == 1) {
670 for (k = mstart; k <= i__1; ++k) {
671 if (ic[k] == *missp) {
689 for (k = mstart; k <= i__1; ++k) {
690 if (ic[k] == *missp || ic[k] == *misss) {
707 kountb = nendb - ktotal;
709 if (minb != mallow) {
726 for (ibitb = ibitbs; ibitb <= 30; ++ibitb) {
727 if (maxb - minb < ibxx2[ibitb] - lmiss) {
752 if (ibitb >= ibita) {
780 for (k = ktotal; k >= i__1; --k) {
785 }
else if (ic[k] > maxb) {
789 if (maxtst - mintst >= ibxx2[ibitb]) {
802 }
else if (*is523 == 1) {
805 for (k = ktotal; k >= i__1; --k) {
807 if (ic[k] == *missp) {
813 }
else if (ic[k] > maxb) {
817 if (maxtst - mintst >= ibxx2[ibitb] - lmiss) {
836 for (k = ktotal; k >= i__1; --k) {
838 if (ic[k] == *missp || ic[k] == *misss) {
844 }
else if (ic[k] > maxb) {
848 if (maxtst - mintst >= ibxx2[ibitb] - lmiss) {
874 if (kounta == kounts) {
885 nouta = kounts - kounta;
888 if (nenda - nouta > minak && nenda - nouta > maxak) {
904 i__1 = nenda - nouta;
905 for (k = kstart; k <= i__1; ++k) {
915 }
else if (*is523 == 1) {
917 i__1 = nenda - nouta;
918 for (k = kstart; k <= i__1; ++k) {
919 if (ic[k] == *missp) {
934 i__1 = nenda - nouta;
935 for (k = kstart; k <= i__1; ++k) {
936 if (ic[k] == *missp || ic[k] == *misss) {
952 if (mina != mallow) {
967 itest = maxa - mina + lmiss;
969 for (ibita = 0; ibita <= 30; ++ibita) {
970 if (itest < ibxx2[ibita]) {
1009 if (*nxy - (ktotal + kinc) <= lminpk / 2) {
1010 kinc = *nxy - ktotal;
1024 i__2 = ktotal + kinc;
1026 i__1 = (i__2 < *nxy) ? i__2 : *nxy;
1027 for (k = ktotal + 1; k <= i__1; ++k) {
1040 }
else if (*is523 == 1) {
1043 i__2 = ktotal + kinc;
1045 i__1 = (i__2 < *nxy) ? i__2 : *nxy;
1046 for (k = ktotal + 1; k <= i__1; ++k) {
1047 if (ic[k] == *missp) {
1066 i__2 = ktotal + kinc;
1068 i__1 = (i__2 < *nxy) ? i__2 : *nxy;
1069 for (k = ktotal + 1; k <= i__1; ++k) {
1070 if (ic[k] == *missp || ic[k] == *misss) {
1098 if (minc == mallow) {
1112 if (maxc - minc >= ibxx2[ibita] - lmiss) {
1130 if (ktotal >= *nxy) {
1134 if (minbk > ktotal && maxbk > ktotal) {
1159 lminpk += lminpk / 2;
1172 kstart = ktotal + 1;
1175 misslx[*lx - 1] = mallow;
1177 misslx[*lx - 1] = ic[ktotal];
1188 if (ktotal >= *nxy) {
1217 for (l = 1; l <= i__1; ++l) {
1219 if (jmin[l] < ibxx2[*ibit]) {
1235 for (l = 1; l <= i__1; ++l) {
1239 if (misslx[l - 1] == *missp) {
1240 jmin[l] = ibxx2[*ibit] - 1;
1268 for (k = 1; k <= i__1; ++k) {
1269 if (lbit[k] < *lbitref) {
1275 if (*lbitref != 0) {
1278 for (k = 1; k <= i__1; ++k) {
1279 lbit[k] -= *lbitref;
1296 for (k = 1; k <= i__1; ++k) {
1298 if (lbit[k] < ibxx2[*jbit]) {
1325 for (k = 1; k <= i__1; ++k) {
1326 if (nov[k] < *novref) {
1335 for (k = 1; k <= i__1; ++k) {
1358 for (k = 1; k <= i__1; ++k) {
1360 if (nov[k] < ibxx2[*kbit]) {
1373 reduce(kfildo, &jmin[1], &jmax[1], &lbit[1], &nov[1], lx, ndg, ibit,
1374 jbit, kbit, novref, ibxx2, ier);
1376 if (*ier == 714 || *ier == 715) {
1387 if ( misslx != 0 ) {
1400 if ( misslx != 0 ) free(misslx);
int pack_gp(g2int *kfildo, g2int *ic, g2int *nxy, g2int *is523, g2int *minpk, g2int *inc, g2int *missp, g2int *misss, g2int *jmin, g2int *jmax, g2int *lbit, g2int *nov, g2int *ndg, g2int *lx, g2int *ibit, g2int *jbit, g2int *kbit, g2int *novref, g2int *lbitref, g2int *ier)
Determines groups of variable size, but at least of size minpk, the associated max (jmax( )) and min ...