 |
My Project
debian-1:4.1.1-p2+ds-4build1
|
Go to the source code of this file.
|
void | hDimSolve (scmon pure, int Npure, scfmon rad, int Nrad, varset var, int Nvar) |
|
int | scDimInt (ideal S, ideal Q) |
|
static void | hIndSolve (scmon pure, int Npure, scfmon rad, int Nrad, varset var, int Nvar) |
|
intvec * | scIndIntvec (ideal S, ideal Q) |
|
static BOOLEAN | hNotZero (scfmon rad, int Nrad, varset var, int Nvar) |
|
static void | hIndep (scmon pure) |
|
void | hIndMult (scmon pure, int Npure, scfmon rad, int Nrad, varset var, int Nvar) |
|
static BOOLEAN | hCheck1 (indset sm, scmon pure) |
|
static indset | hCheck2 (indset sm, scmon pure) |
|
static void | hCheckIndep (scmon pure) |
|
void | hIndAllMult (scmon pure, int Npure, scfmon rad, int Nrad, varset var, int Nvar) |
|
static int | hZeroMult (scmon pure, scfmon stc, int Nstc, varset var, int Nvar) |
|
static void | hProject (scmon pure, varset sel) |
|
static void | hDimMult (scmon pure, int Npure, scfmon rad, int Nrad, varset var, int Nvar) |
|
static void | hDegree (ideal S, ideal Q) |
|
int | scMultInt (ideal S, ideal Q) |
|
void | scPrintDegree (int co, int mu) |
|
void | scDegree (ideal S, intvec *modulweight, ideal Q) |
|
static void | hDegree0 (ideal S, ideal Q, const ring tailRing) |
|
int | scMult0Int (ideal S, ideal Q, const ring tailRing) |
|
static void | hHedge (poly hEdge) |
|
static void | hHedgeStep (scmon pure, scfmon stc, int Nstc, varset var, int Nvar, poly hEdge) |
|
void | scComputeHC (ideal S, ideal Q, int ak, poly &hEdge, ring tailRing) |
|
static void | scElKbase () |
|
static int | scMax (int i, scfmon stc, int Nvar) |
|
static int | scMin (int i, scfmon stc, int Nvar) |
|
static int | scRestrict (int &Nstc, scfmon stc, int Nvar) |
|
static void | scAll (int Nvar, int deg) |
|
static void | scAllKbase (int Nvar, int ideg, int deg) |
|
static void | scDegKbase (scfmon stc, int Nstc, int Nvar, int deg) |
|
static void | scInKbase (scfmon stc, int Nstc, int Nvar) |
|
static ideal | scIdKbase (poly q, const int rank) |
|
ideal | scKBase (int deg, ideal s, ideal Q, intvec *mv) |
|
◆ hCheck1()
Definition at line 394 of file hdegree.cc.
398 while (sm->nx !=
NULL)
404 if (((*Set)[iv-1] == 0) && (pure[iv] == 0))
◆ hCheck2()
Definition at line 420 of file hdegree.cc.
425 while (sm->nx !=
NULL)
431 if ((pure[iv] == 1) && ((*Set)[iv-1] == 1))
◆ hCheckIndep()
static void hCheckIndep |
( |
scmon |
pure | ) |
|
|
static |
◆ hDegree()
static void hDegree |
( |
ideal |
S, |
|
|
ideal |
Q |
|
) |
| |
|
static |
◆ hDegree0()
static void hDegree0 |
( |
ideal |
S, |
|
|
ideal |
Q, |
|
|
const ring |
tailRing |
|
) |
| |
|
static |
Definition at line 845 of file hdegree.cc.
894 memset(
hpur0, 0, ((r->N) + 1) *
sizeof(
int));
907 if (mc <= 0 ||
hMu < 0)
◆ hDimMult()
static void hDimMult |
( |
scmon |
pure, |
|
|
int |
Npure, |
|
|
scfmon |
rad, |
|
|
int |
Nrad, |
|
|
varset |
var, |
|
|
int |
Nvar |
|
) |
| |
|
static |
Definition at line 622 of file hdegree.cc.
625 int dn, iv, rad0,
b, c,
x;
638 for (iv = Nvar; iv; iv--)
674 while(pure[var[iv]]) iv--;
675 hStepR(rad, Nrad, var, iv, &rad0);
682 hDimMult(pn, Npure + 1, rn, rad0, var, iv);
686 hElimR(rn, &rad0,
b, c, var, iv);
687 hPure(rn,
b, &c, var, iv, pn, &
x);
690 hDimMult(pn, Npure +
x, rn, rad0, var, iv);
694 hDimMult(pure, Npure, rad, Nrad, var, iv);
◆ hDimSolve()
Definition at line 29 of file hdegree.cc.
32 int dn, iv, rad0,
b, c,
x;
45 while(pure[var[iv]]) iv--;
46 hStepR(rad, Nrad, var, iv, &rad0);
54 hDimSolve(pn, Npure + 1, rn, rad0, var, iv);
57 hElimR(rn, &rad0,
b, c, var, iv);
58 hPure(rn,
b, &c, var, iv, pn, &
x);
65 hDimSolve(pure, Npure, rad, Nrad, var, iv);
◆ hHedge()
static void hHedge |
( |
poly |
hEdge | ) |
|
|
static |
◆ hHedgeStep()
static void hHedgeStep |
( |
scmon |
pure, |
|
|
scfmon |
stc, |
|
|
int |
Nstc, |
|
|
varset |
var, |
|
|
int |
Nvar, |
|
|
poly |
hEdge |
|
) |
| |
|
static |
Definition at line 945 of file hdegree.cc.
948 int iv = Nvar -1,
k = var[Nvar], a, a0, a1,
b,
i;
960 for (
i = Nvar;
i>0;
i--)
968 hStepS(sn, Nstc, var, Nvar, &a, &
x);
985 hStepS(sn, Nstc, var, Nvar, &a, &
x);
986 hElimS(sn, &
b, a0, a, var, iv);
988 hPure(sn, a0, &a1, var, iv, pn, &
i);
◆ hIndAllMult()
void hIndAllMult |
( |
scmon |
pure, |
|
|
int |
Npure, |
|
|
scfmon |
rad, |
|
|
int |
Nrad, |
|
|
varset |
var, |
|
|
int |
Nvar |
|
) |
| |
Definition at line 496 of file hdegree.cc.
499 int dn, iv, rad0,
b, c,
x;
512 for (iv = Nvar; iv; iv--)
527 while(pure[var[iv]]) iv--;
528 hStepR(rad, Nrad, var, iv, &rad0);
539 hElimR(rn, &rad0,
b, c, var, iv);
540 hPure(rn,
b, &c, var, iv, pn, &
x);
◆ hIndep()
static void hIndep |
( |
scmon |
pure | ) |
|
|
static |
◆ hIndMult()
Definition at line 313 of file hdegree.cc.
316 int dn, iv, rad0,
b, c,
x;
329 for (iv = Nvar; iv!=0; iv--)
365 while(pure[var[iv]]) iv--;
366 hStepR(rad, Nrad, var, iv, &rad0);
373 hIndMult(pn, Npure + 1, rn, rad0, var, iv);
377 hElimR(rn, &rad0,
b, c, var, iv);
378 hPure(rn,
b, &c, var, iv, pn, &
x);
381 hIndMult(pn, Npure +
x, rn, rad0, var, iv);
385 hIndMult(pure, Npure, rad, Nrad, var, iv);
◆ hIndSolve()
static void hIndSolve |
( |
scmon |
pure, |
|
|
int |
Npure, |
|
|
scfmon |
rad, |
|
|
int |
Nrad, |
|
|
varset |
var, |
|
|
int |
Nvar |
|
) |
| |
|
static |
Definition at line 133 of file hdegree.cc.
136 int dn, iv, rad0,
b, c,
x;
173 while(pure[var[iv]]) iv--;
174 hStepR(rad, Nrad, var, iv, &rad0);
183 hIndSolve(pn, Npure + 1, rn, rad0, var, iv);
187 hElimR(rn, &rad0,
b, c, var, iv);
188 hPure(rn,
b, &c, var, iv, pn, &
x);
195 hIndSolve(pure, Npure, rad, Nrad, var, iv);
◆ hNotZero()
◆ hProject()
Definition at line 599 of file hdegree.cc.
614 if ((i0 > 2) && (
i > 10))
◆ hZeroMult()
Definition at line 553 of file hdegree.cc.
555 int iv = Nvar -1, sum, a, a0, a1,
b,
i;
564 for (
i = Nvar;
i;
i--)
571 hStepS(sn, Nstc, var, Nvar, &a, &
x);
573 return pure[var[Nvar]] *
hZeroMult(pn, sn, a, var, iv);
581 hStepS(sn, Nstc, var, Nvar, &a, &
x);
582 hElimS(sn, &
b, a0, a, var, iv);
584 hPure(sn, a0, &a1, var, iv, pn, &
i);
593 sum += (pure[var[Nvar]] - x0) *
hZeroMult(pn, sn,
b, var, iv);
◆ scAll()
static void scAll |
( |
int |
Nvar, |
|
|
int |
deg |
|
) |
| |
|
static |
◆ scAllKbase()
static void scAllKbase |
( |
int |
Nvar, |
|
|
int |
ideg, |
|
|
int |
deg |
|
) |
| |
|
static |
Definition at line 1188 of file hdegree.cc.
1193 scAll(Nvar-1, deg-ideg);
1195 }
while (ideg >= 0);
◆ scComputeHC()
void scComputeHC |
( |
ideal |
S, |
|
|
ideal |
Q, |
|
|
int |
ak, |
|
|
poly & |
hEdge, |
|
|
ring |
tailRing |
|
) |
| |
Definition at line 1005 of file hdegree.cc.
1030 printf(
"\nThis is HC:\n");
1031 for(
int ii=0;ii<=
idElem(S);ii++)
◆ scDegKbase()
static void scDegKbase |
( |
scfmon |
stc, |
|
|
int |
Nstc, |
|
|
int |
Nvar, |
|
|
int |
deg |
|
) |
| |
|
static |
Definition at line 1198 of file hdegree.cc.
1200 int Ivar, Istc,
i,
j;
1206 for (
i=Nstc-1;
i>=0;
i--)
1208 for (
j=Nvar;
j;
j--){
if(stc[
i][
j])
break; }
1211 for (
i=Nvar;
i;
i--)
act[
i] = 0;
1217 for (
i=Nstc-1;
i>=0;
i--)
if(deg >= stc[
i][1])
return;
1232 if (deg <
x) ideg = deg;
1242 x =
scMax(Nstc, sn, Nvar);
1249 if (ideg < 0)
return;
1251 for (
i=Nstc-1;
i>=0;
i--)
1253 if (ideg < sn[
i][Nvar])
◆ scDegree()
void scDegree |
( |
ideal |
S, |
|
|
intvec * |
modulweight, |
|
|
ideal |
Q |
|
) |
| |
◆ scDimInt()
int scDimInt |
( |
ideal |
S, |
|
|
ideal |
Q |
|
) |
| |
◆ scElKbase()
static void scElKbase |
( |
| ) |
|
|
static |
◆ scIdKbase()
static ideal scIdKbase |
( |
poly |
q, |
|
|
const int |
rank |
|
) |
| |
|
static |
◆ scIndIntvec()
intvec* scIndIntvec |
( |
ideal |
S, |
|
|
ideal |
Q |
|
) |
| |
◆ scInKbase()
static void scInKbase |
( |
scfmon |
stc, |
|
|
int |
Nstc, |
|
|
int |
Nvar |
|
) |
| |
|
static |
Definition at line 1279 of file hdegree.cc.
1281 int Ivar, Istc,
i,
j;
1287 ideg =
scMin(Nstc, stc, 1);
1303 x =
scMax(Nstc, sn, Nvar);
1310 if (ideg < 0)
return;
1312 for (
i=Nstc-1;
i>=0;
i--)
1314 if (ideg < sn[
i][Nvar])
◆ scKBase()
ideal scKBase |
( |
int |
deg, |
|
|
ideal |
s, |
|
|
ideal |
Q, |
|
|
intvec * |
mv |
|
) |
| |
Definition at line 1353 of file hdegree.cc.
1393 if (mv!=
NULL) deg_ei -= (*mv)[
i-1];
1394 if ((deg < 0) || (deg_ei>=0))
◆ scMax()
static int scMax |
( |
int |
i, |
|
|
scfmon |
stc, |
|
|
int |
Nvar |
|
) |
| |
|
static |
◆ scMin()
static int scMin |
( |
int |
i, |
|
|
scfmon |
stc, |
|
|
int |
Nvar |
|
) |
| |
|
static |
◆ scMult0Int()
int scMult0Int |
( |
ideal |
S, |
|
|
ideal |
Q, |
|
|
const ring |
tailRing |
|
) |
| |
◆ scMultInt()
int scMultInt |
( |
ideal |
S, |
|
|
ideal |
Q |
|
) |
| |
◆ scPrintDegree()
void scPrintDegree |
( |
int |
co, |
|
|
int |
mu |
|
) |
| |
Definition at line 808 of file hdegree.cc.
814 Print(
"// dimension (proj.) = %d\n// degree (proj.) = %d\n", di-1,
mu);
816 Print(
"// dimension (affine) = 0\n// degree (affine) = %d\n",
mu);
819 Print(
"// dimension (local) = %d\n// multiplicity = %d\n", di,
mu);
◆ scRestrict()
static int scRestrict |
( |
int & |
Nstc, |
|
|
scfmon |
stc, |
|
|
int |
Nvar |
|
) |
| |
|
static |
Definition at line 1113 of file hdegree.cc.
1116 int i,
j, Istc = Nstc;
1119 for (
i=Nstc-1;
i>=0;
i--)
1124 if(stc[
i][
j] != 0)
break;
1138 for (
i=Nstc-1;
i>=0;
i--)
1140 if (stc[
i] && (stc[
i][Nvar] >=
y))
◆ act
◆ hCo
◆ hInd
◆ hMu
◆ hMu2
◆ indlist_bin
◆ ISet
◆ JSet
◆ last
◆ pWork
void hStaircase(scfmon stc, int *Nstc, varset var, int Nvar)
int idElem(const ideal F)
count non-zero elements
void hIndMult(scmon pure, int Npure, scfmon rad, int Nrad, varset var, int Nvar)
void hElimS(scfmon stc, int *e1, int a2, int e2, varset var, int Nvar)
static BOOLEAN hNotZero(scfmon rad, int Nrad, varset var, int Nvar)
static void pLmFree(poly p)
frees the space of the monomial m, assumes m != NULL coef is not freed, m is not advanced
static void hHedgeStep(scmon pure, scfmon stc, int Nstc, varset var, int Nvar, poly hEdge)
static void hIndSolve(scmon pure, int Npure, scfmon rad, int Nrad, varset var, int Nvar)
const CanonicalForm int const CFList const Variable & y
static void scAllKbase(int Nvar, int ideg, int deg)
#define pGetExp(p, i)
Exponent.
void hRadical(scfmon rad, int *Nrad, int Nvar)
static int scRestrict(int &Nstc, scfmon stc, int Nvar)
static ideal scIdKbase(poly q, const int rank)
scfmon hGetmem(int lm, scfmon old, monp monmem)
static void scInKbase(scfmon stc, int Nstc, int Nvar)
void hDimSolve(scmon pure, int Npure, scfmon rad, int Nrad, varset var, int Nvar)
int scDimInt(ideal S, ideal Q)
static void hHedge(poly hEdge)
void mu(int **points, int sizePoints)
static unsigned pLength(poly a)
static void scAll(int Nvar, int deg)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
static int scMin(int i, scfmon stc, int Nvar)
static int hZeroMult(scmon pure, scfmon stc, int Nstc, varset var, int Nvar)
#define omFreeSize(addr, size)
static void hCheckIndep(scmon pure)
static void hDegree0(ideal S, ideal Q, const ring tailRing)
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
static BOOLEAN rField_is_Ring(const ring r)
void hComp(scfmon exist, int Nexist, int ak, scfmon stc, int *Nstc)
void hKill(monf xmem, int Nvar)
#define pInit()
allocates a new monomial and initializes everything to 0
void hStepR(scfmon rad, int Nrad, varset var, int Nvar, int *a)
void hDelete(scfmon ev, int ev_length)
void hStepS(scfmon stc, int Nstc, varset var, int Nvar, int *a, int *x)
void hIndAllMult(scmon pure, int Npure, scfmon rad, int Nrad, varset var, int Nvar)
void hLex2R(scfmon rad, int e1, int a2, int e2, varset var, int Nvar, scfmon w)
static void scDegKbase(scfmon stc, int Nstc, int Nvar, int deg)
intvec * hSecondSeries(intvec *hseries1)
static int scMax(int i, scfmon stc, int Nvar)
void hPure(scfmon stc, int a, int *Nstc, varset var, int Nvar, scmon pure, int *Npure)
void hLex2S(scfmon rad, int e1, int a2, int e2, varset var, int Nvar, scfmon w)
int p_IsPurePower(const poly p, const ring r)
return i, if head depends only on var(i)
static void p_Delete(poly *p, const ring r)
scfmon hInit(ideal S, ideal Q, int *Nexist, ring tailRing)
intvec * hFirstSeries(ideal S, intvec *modulweight, ideal Q, intvec *wdegree, ring tailRing)
static void hDegree(ideal S, ideal Q)
static indset hCheck2(indset sm, scmon pure)
void hOrdSupp(scfmon stc, int Nstc, varset var, int Nvar)
void hSupp(scfmon stc, int Nstc, varset var, int *Nvar)
ideal idInit(int idsize, int rank)
initialise an ideal / module
#define id_TestTail(A, lR, tR)
static void hProject(scmon pure, varset sel)
static BOOLEAN hCheck1(indset sm, scmon pure)
void hElimR(scfmon rad, int *e1, int a2, int e2, varset var, int Nvar)
const CanonicalForm int s
#define pLmCmp(p, q)
returns 0|1|-1 if p=q|p>q|p<q w.r.t monomial ordering
void hDegreeSeries(intvec *s1, intvec *s2, int *co, int *mu)
ideal id_Copy(ideal h1, const ring r)
copy an ideal
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
void scPrintDegree(int co, int mu)
#define omFreeBin(addr, bin)
void hLexR(scfmon rad, int Nrad, varset var, int Nvar)
static FORCE_INLINE BOOLEAN n_IsUnit(number n, const coeffs r)
TRUE iff n has a multiplicative inverse in the given coeff field/ring r.
void hLexS(scfmon stc, int Nstc, varset var, int Nvar)
static void hDimMult(scmon pure, int Npure, scfmon rad, int Nrad, varset var, int Nvar)
static void hIndep(scmon pure)