 |
My Project
debian-1:4.1.2-p1+ds-2
|
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 393 of file hdegree.cc.
397 while (sm->nx !=
NULL)
403 if (((*Set)[iv-1] == 0) && (pure[iv] == 0))
◆ hCheck2()
Definition at line 419 of file hdegree.cc.
424 while (sm->nx !=
NULL)
430 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 844 of file hdegree.cc.
893 memset(
hpur0, 0, ((r->N) + 1) *
sizeof(
int));
906 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 621 of file hdegree.cc.
624 int dn, iv, rad0,
b, c,
x;
637 for (iv = Nvar; iv; iv--)
673 while(pure[var[iv]]) iv--;
674 hStepR(rad, Nrad, var, iv, &rad0);
681 hDimMult(pn, Npure + 1, rn, rad0, var, iv);
685 hElimR(rn, &rad0,
b, c, var, iv);
686 hPure(rn,
b, &c, var, iv, pn, &
x);
689 hDimMult(pn, Npure +
x, rn, rad0, var, iv);
693 hDimMult(pure, Npure, rad, Nrad, var, iv);
◆ hDimSolve()
Definition at line 28 of file hdegree.cc.
31 int dn, iv, rad0,
b, c,
x;
44 while(pure[var[iv]]) iv--;
45 hStepR(rad, Nrad, var, iv, &rad0);
53 hDimSolve(pn, Npure + 1, rn, rad0, var, iv);
56 hElimR(rn, &rad0,
b, c, var, iv);
57 hPure(rn,
b, &c, var, iv, pn, &
x);
64 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 944 of file hdegree.cc.
947 int iv = Nvar -1,
k = var[Nvar], a, a0, a1,
b,
i;
959 for (
i = Nvar;
i>0;
i--)
967 hStepS(sn, Nstc, var, Nvar, &a, &
x);
984 hStepS(sn, Nstc, var, Nvar, &a, &
x);
985 hElimS(sn, &
b, a0, a, var, iv);
987 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 495 of file hdegree.cc.
498 int dn, iv, rad0,
b, c,
x;
511 for (iv = Nvar; iv; iv--)
526 while(pure[var[iv]]) iv--;
527 hStepR(rad, Nrad, var, iv, &rad0);
538 hElimR(rn, &rad0,
b, c, var, iv);
539 hPure(rn,
b, &c, var, iv, pn, &
x);
◆ hIndep()
static void hIndep |
( |
scmon |
pure | ) |
|
|
static |
◆ hIndMult()
Definition at line 312 of file hdegree.cc.
315 int dn, iv, rad0,
b, c,
x;
328 for (iv = Nvar; iv!=0; iv--)
364 while(pure[var[iv]]) iv--;
365 hStepR(rad, Nrad, var, iv, &rad0);
372 hIndMult(pn, Npure + 1, rn, rad0, var, iv);
376 hElimR(rn, &rad0,
b, c, var, iv);
377 hPure(rn,
b, &c, var, iv, pn, &
x);
380 hIndMult(pn, Npure +
x, rn, rad0, var, iv);
384 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 132 of file hdegree.cc.
135 int dn, iv, rad0,
b, c,
x;
172 while(pure[var[iv]]) iv--;
173 hStepR(rad, Nrad, var, iv, &rad0);
182 hIndSolve(pn, Npure + 1, rn, rad0, var, iv);
186 hElimR(rn, &rad0,
b, c, var, iv);
187 hPure(rn,
b, &c, var, iv, pn, &
x);
194 hIndSolve(pure, Npure, rad, Nrad, var, iv);
◆ hNotZero()
◆ hProject()
Definition at line 598 of file hdegree.cc.
613 if ((i0 > 2) && (
i > 10))
◆ hZeroMult()
Definition at line 552 of file hdegree.cc.
554 int iv = Nvar -1, sum, a, a0, a1,
b,
i;
563 for (
i = Nvar;
i;
i--)
570 hStepS(sn, Nstc, var, Nvar, &a, &
x);
572 return pure[var[Nvar]] *
hZeroMult(pn, sn, a, var, iv);
580 hStepS(sn, Nstc, var, Nvar, &a, &
x);
581 hElimS(sn, &
b, a0, a, var, iv);
583 hPure(sn, a0, &a1, var, iv, pn, &
i);
592 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 1187 of file hdegree.cc.
1192 scAll(Nvar-1, deg-ideg);
1194 }
while (ideg >= 0);
◆ scComputeHC()
void scComputeHC |
( |
ideal |
S, |
|
|
ideal |
Q, |
|
|
int |
ak, |
|
|
poly & |
hEdge, |
|
|
ring |
tailRing |
|
) |
| |
Definition at line 1004 of file hdegree.cc.
1029 printf(
"\nThis is HC:\n");
1030 for(
int ii=0;ii<=
idElem(S);ii++)
◆ scDegKbase()
static void scDegKbase |
( |
scfmon |
stc, |
|
|
int |
Nstc, |
|
|
int |
Nvar, |
|
|
int |
deg |
|
) |
| |
|
static |
Definition at line 1197 of file hdegree.cc.
1199 int Ivar, Istc,
i,
j;
1205 for (
i=Nstc-1;
i>=0;
i--)
1207 for (
j=Nvar;
j;
j--){
if(stc[
i][
j])
break; }
1210 for (
i=Nvar;
i;
i--)
act[
i] = 0;
1216 for (
i=Nstc-1;
i>=0;
i--)
if(deg >= stc[
i][1])
return;
1231 if (deg <
x) ideg = deg;
1241 x =
scMax(Nstc, sn, Nvar);
1248 if (ideg < 0)
return;
1250 for (
i=Nstc-1;
i>=0;
i--)
1252 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 1278 of file hdegree.cc.
1280 int Ivar, Istc,
i,
j;
1286 ideg =
scMin(Nstc, stc, 1);
1302 x =
scMax(Nstc, sn, Nvar);
1309 if (ideg < 0)
return;
1311 for (
i=Nstc-1;
i>=0;
i--)
1313 if (ideg < sn[
i][Nvar])
◆ scKBase()
ideal scKBase |
( |
int |
deg, |
|
|
ideal |
s, |
|
|
ideal |
Q, |
|
|
intvec * |
mv |
|
) |
| |
Definition at line 1352 of file hdegree.cc.
1392 if (mv!=
NULL) deg_ei -= (*mv)[
i-1];
1393 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 807 of file hdegree.cc.
813 Print(
"// dimension (proj.) = %d\n// degree (proj.) = %d\n", di-1,
mu);
815 Print(
"// dimension (affine) = 0\n// degree (affine) = %d\n",
mu);
818 Print(
"// dimension (local) = %d\n// multiplicity = %d\n", di,
mu);
◆ scRestrict()
static int scRestrict |
( |
int & |
Nstc, |
|
|
scfmon |
stc, |
|
|
int |
Nvar |
|
) |
| |
|
static |
Definition at line 1112 of file hdegree.cc.
1115 int i,
j, Istc = Nstc;
1118 for (
i=Nstc-1;
i>=0;
i--)
1123 if(stc[
i][
j] != 0)
break;
1137 for (
i=Nstc-1;
i>=0;
i--)
1139 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)
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)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
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)