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

Function hDimSolve

kernel/combinatorics/hdegree.cc:35–76  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33// dimension
34
35void hDimSolve(scmon pure, int Npure, scfmon rad, int Nrad,
36 varset var, int Nvar)
37{
38 int dn, iv, rad0, b, c, x;
39 scmon pn;
40 scfmon rn;
41 if (Nrad < 2)
42 {
43 dn = Npure + Nrad;
44 if (dn < hCo)
45 hCo = dn;
46 return;
47 }
48 if (Npure+1 >= hCo)
49 return;
50 iv = Nvar;
51 while(pure[var[iv]]) iv--;
52 hStepR(rad, Nrad, var, iv, &rad0);
53 if (rad0!=0)
54 {
55 iv--;
56 if (rad0 < Nrad)
57 {
58 pn = hGetpure(pure);
59 rn = hGetmem(Nrad, rad, radmem[iv]);
60 hDimSolve(pn, Npure + 1, rn, rad0, var, iv);
61 b = rad0;
62 c = Nrad;
63 hElimR(rn, &rad0, b, c, var, iv);
64 hPure(rn, b, &c, var, iv, pn, &x);
65 hLex2R(rn, rad0, b, c, var, iv, hwork);
66 rad0 += (c - b);
67 hDimSolve(pn, Npure + x, rn, rad0, var, iv);
68 }
69 else
70 {
71 hDimSolve(pure, Npure, rad, Nrad, var, iv);
72 }
73 }
74 else
75 hCo = Npure + 1;
76}
77
78int scDimInt(ideal S, ideal Q)
79{

Callers 3

scIndIndsetFunction · 0.85
scDimIntFunction · 0.85
hDegreeFunction · 0.85

Calls 6

hStepRFunction · 0.85
hGetpureFunction · 0.85
hGetmemFunction · 0.85
hElimRFunction · 0.85
hPureFunction · 0.85
hLex2RFunction · 0.85

Tested by

no test coverage detected