MCPcopy Create free account
hub / github.com/Singular/Singular / HilbertSeries_OrbitData

Function HilbertSeries_OrbitData

kernel/combinatorics/hilb.cc:1423–1768  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1421}
1422
1423void HilbertSeries_OrbitData(ideal S, int lV, bool IG_CASE, bool mgrad, bool odp, int trunDegHs)
1424{
1425
1426 /* new story:
1427 no lV is needed, i.e. it is to be determined
1428 the rest is extracted from the interface input list in extra.cc and makes the input of this proc
1429 called from extra.cc
1430 */
1431
1432 /*
1433 * This is based on iterative right colon operations on a
1434 * two-sided monomial ideal of the free associative algebra.
1435 * The algorithm terminates for those monomial ideals
1436 * whose monomials define "regular formal languages",
1437 * that is, all monomials of the input ideal can be obtained
1438 * from finite languages by applying finite number of
1439 * rational operations.
1440 */
1441
1442 int trInd;
1443 S = minimalMonomialGenSet(S);
1444 if( !idIs0(S) && p_Totaldegree(S->m[0], currRing)==0)
1445 {
1446 PrintS("Hilbert Series:\n 0\n");
1447 return;
1448 }
1449 int (*POS)(ideal, poly, std::vector<ideal>, std::vector<poly>, int, int);
1450 if(trunDegHs != 0)
1451 {
1452 Print("\nTruncation degree = %d\n",trunDegHs);
1453 POS=&positionInOrbitTruncationCase;
1454 }
1455 else
1456 {
1457 if(IG_CASE)
1458 {
1459 if(idIs0(S))
1460 {
1461 WerrorS("wrong input: it is not an infinitely gen. case");
1462 return;
1463 }
1464 trInd = p_Totaldegree(S->m[IDELEMS(S)-1], currRing);
1465 POS = &positionInOrbit_IG_Case;
1466 }
1467 else
1468 POS = &positionInOrbit_FG_Case;
1469 }
1470 std::vector<ideal > idorb;
1471 std::vector< poly > polist;
1472
1473 ideal orb_init = idInit(1, 1);
1474 idorb.push_back(orb_init);
1475
1476 polist.push_back( p_One(currRing));
1477
1478 std::vector< std::vector<int> > posMat;
1479 std::vector<int> posRow(lV,0);
1480 std::vector<int> C;

Callers 1

jjSYSTEMFunction · 0.85

Calls 15

minimalMonomialGenSetFunction · 0.85
idIs0Function · 0.85
p_TotaldegreeFunction · 0.85
PrintSFunction · 0.85
WerrorSFunction · 0.85
idInitFunction · 0.85
p_OneFunction · 0.85
p_SetExpFunction · 0.85
p_SetmFunction · 0.85
colonIdealFunction · 0.85
pWrite0Function · 0.85
nInitCharFunction · 0.85

Tested by

no test coverage detected