1417{
1418 int i=0,
j,next_new_el;
1419 int idel_temp=
IDELEMS(temp_generators);
1420 int next_place_add;
1421 int p_length,red_deg,l_pairs=
IDELEMS(add_generators);
1422 poly next_p;
1427
1429 {
1432 }
1434 next_place_add =
IDELEMS(add_generators);
1435 while ((next_place_add>0) && (add_generators->m[next_place_add-1]==
NULL))
1436 next_place_add--;
1438 next_new_el = next_place_add;
1439
1440 while ((
i<idel_temp) && (temp_generators->m[
i]!=
NULL))
1441 {
1442
1443#ifdef USE_REGULARITY
1445 {
1447 {
1448 while ((
i<idel_temp) && (temp_generators->m[
i]!=
NULL))
1449 {
1452 }
1453 break;
1454 }
1455 }
1456#endif
1457 while ((
i<idel_temp) && (
p_FDeg(temp_generators->m[
i],
currRing)==next_deg))
1458 {
1459 next_p = temp_generators->m[
i];
1460 temp_generators->m[
i] =
NULL;
1461 next_p =
normalize(next_p,add_generators,syzstr,gen_length,&p_length,
1462 crit_comp);
1464 {
1466 {
1468
1469 }
1470 else
1471 {
1473 gen_length,secgen_length,&p_length);
1476 if (next_place_add>=
IDELEMS(add_generators))
1477 {
1481 (
IDELEMS(add_generators)+16)*
sizeof(
int));
1482 IDELEMS(add_generators) += 16;
1484 }
1485 add_generators->m[next_place_add] = next_p;
1489 {
1495 }
1496#ifdef FULL_TOTAKE
1498#else
1500#endif
1502#ifdef WITH_SCHREYER_ORD
1503 add_repr->m[next_place_add] =
pHead(add_generators->m[next_place_add]);
1504#else
1505 add_repr->m[next_place_add] =
pOne();
1506#endif
1510 gen_length[next_place_add] = p_length;
1511 next_place_add++;
1512 }
1513 }
1515 }
1516 red_deg = next_deg;
1519 else
1520 next_deg = -1;
1521 if ((next_place_add>next_new_el) || (next_deg<0))
1522 {
1523
1525 while (pairs_left && ((next_deg<0) || (red_deg<= next_deg)))
1526 {
1528 add_repr,new_generators,new_repr,crit_comp,&next_new_el);
1530 add_repr,new_generators,new_repr,crit_comp,&red_deg,&next_place_add,&gen_length,
1531 totake);
1532 }
1533 }
1534 }
1538}
#define omRealloc0Size(addr, o_size, size)
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL
#define pSetmComp(p)
TODO:
#define pCopy(p)
return a copy of the poly
static poly normalize(poly next_p, ideal add_generators, syStrategy syzstr, int *g_l, int *p_l, int crit_comp)
static BOOLEAN reducePairsHIndex(SSet resPairs, int l_pairs, syStrategy syzstr, int index, ideal add_generators, ideal add_repr, ideal new_generators, ideal new_repr, int crit_comp, int *red_deg, int *next_place_add, int **g_l, resolvente totake)
static void updatePairsHIndex(SSet *resPairs, int *l_pairs, syStrategy, int index, ideal add_generators, ideal, ideal, ideal, int, int *first_new)
static poly syRedTailSyz(poly tored, ideal red, ideal sec_red, int crit_comp, syStrategy syzstr, int *gen_length, int *secgen_length, int *tored_length)