 |
My Project
debian-1:4.1.1-p2+ds-4build3
|
Go to the documentation of this file.
32 int dn, iv, rad0,
b, c,
x;
45 while(pure[
var[iv]]) iv--;
136 int dn, iv, rad0,
b, c,
x;
173 while(pure[
var[iv]]) iv--;
302 for (iv=(
currRing->N); iv!=0 ; iv--)
316 int dn, iv, rad0,
b, c,
x;
329 for (iv = Nvar; iv!=0; iv--)
365 while(pure[
var[iv]]) iv--;
398 while (sm->nx !=
NULL)
404 if (((*Set)[iv-1] == 0) && (pure[iv] == 0))
425 while (sm->nx !=
NULL)
431 if ((pure[iv] == 1) && ((*Set)[iv-1] == 1))
499 int dn, iv, rad0,
b, c,
x;
512 for (iv = Nvar; iv; iv--)
527 while(pure[
var[iv]]) iv--;
555 int iv = Nvar -1, sum, a, a0, a1,
b,
i;
564 for (
i = Nvar;
i;
i--)
614 if ((i0 > 2) && (
i > 10))
625 int dn, iv, rad0,
b, c,
x;
638 for (iv = Nvar; iv; iv--)
674 while(pure[
var[iv]]) iv--;
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);
836 if ((
l == 1) &&(
mu == 0))
845 static void hDegree0(ideal S, ideal
Q,
const ring tailRing)
894 memset(
hpur0, 0, ((r->N) + 1) *
sizeof(
int));
907 if (mc <= 0 ||
hMu < 0)
946 int Nstc,
varset var,
int Nvar,poly hEdge)
948 int iv = Nvar -1,
k =
var[Nvar], a, a0, a1,
b,
i;
960 for (
i = Nvar;
i>0;
i--)
1030 printf(
"\nThis is HC:\n");
1031 for(
int ii=0;ii<=
idElem(S);ii++)
1091 int x,
y=stc[0][Nvar];
1103 int x,
y=stc[0][Nvar];
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))
1170 for (
i=Nvar;
i;
i--)
act[
i] = 0;
1183 scAll(Nvar-1, deg-d);
1193 scAll(Nvar-1, deg-ideg);
1195 }
while (ideg >= 0);
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])
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])
1393 if (mv!=
NULL) deg_ei -= (*mv)[
i-1];
1394 if ((deg < 0) || (deg_ei>=0))
1419 #if 0 //-- alternative implementation of scComputeHC
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 scDegree(ideal S, intvec *modulweight, ideal Q)
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)
void scComputeHC(ideal S, ideal Q, int ak, poly &hEdge, ring tailRing)
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 omGetSpecBin(size)
#define pGetExp(p, i)
Exponent.
void hRadical(scfmon rad, int *Nrad, int Nvar)
static int scRestrict(int &Nstc, scfmon stc, int Nvar)
ideal scKBase(int deg, ideal s, ideal Q, intvec *mv)
static ideal scIdKbase(poly q, const int rank)
int scMultInt(ideal S, ideal Q)
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)
intvec * scIndIntvec(ideal S, ideal Q)
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.
int scMult0Int(ideal S, ideal Q, const ring tailRing)
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)