Typedefs | Functions | Variables
hilb.h File Reference

Go to the source code of this file.

Typedefs

typedef polyrec * poly
 

Functions

intvechHstdSeries (ideal S, intvec *modulweight, intvec *wdegree, ideal Q=NULL, ring tailRing=currRing)
 
intvechFirstSeries (ideal S, intvec *modulweight, ideal Q=NULL, intvec *wdegree=NULL, ring tailRing=currRing)
 
intvechSecondSeries (intvec *hseries1)
 
void hLookSeries (ideal S, intvec *modulweight, ideal Q=NULL, intvec *wdegree=NULL, ring tailRing=currRing)
 
void sortMonoIdeal_pCompare (ideal I)
 

Variables

ring currRing
 Widely used global variable which specifies the current polynomial ring for Singular interpreter and legacy implementatins. : one should avoid using it in newer designs, for example due to possible problems in parallelization with threads. More...
 

Typedef Documentation

§ poly

typedef struct spolyrec * poly

Definition at line 10 of file hilb.h.

Function Documentation

§ hFirstSeries()

intvec* hFirstSeries ( ideal  S,
intvec modulweight,
ideal  Q = NULL,
intvec wdegree = NULL,
ring  tailRing = currRing 
)

Definition at line 1292 of file hilb.cc.

1293 {
1295  if (Q!= NULL) id_TestTail(Q, currRing, tailRing);
1296 
1297  return hSeries(S, modulweight, 1, wdegree, Q, tailRing);
1298 }
#define id_TestTail(A, lR, tR)
Definition: simpleideals.h:79
BEGIN_NAMESPACE_SINGULARXX const ring const ring tailRing
Definition: DebugPrint.h:30
#define Q
Definition: sirandom.c:25
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:10
static intvec * hSeries(ideal S, intvec *modulweight, int, intvec *wdegree, ideal Q, ring tailRing)
Definition: hilb.cc:1129
#define NULL
Definition: omList.c:10

§ hHstdSeries()

intvec* hHstdSeries ( ideal  S,
intvec modulweight,
intvec wdegree,
ideal  Q = NULL,
ring  tailRing = currRing 
)

Definition at line 1285 of file hilb.cc.

1286 {
1288  if (Q!=NULL) id_TestTail(Q, currRing, tailRing);
1289  return hSeries(S, modulweight, 0, wdegree, Q, tailRing);
1290 }
#define id_TestTail(A, lR, tR)
Definition: simpleideals.h:79
BEGIN_NAMESPACE_SINGULARXX const ring const ring tailRing
Definition: DebugPrint.h:30
#define Q
Definition: sirandom.c:25
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:10
static intvec * hSeries(ideal S, intvec *modulweight, int, intvec *wdegree, ideal Q, ring tailRing)
Definition: hilb.cc:1129
#define NULL
Definition: omList.c:10

§ hLookSeries()

void hLookSeries ( ideal  S,
intvec modulweight,
ideal  Q = NULL,
intvec wdegree = NULL,
ring  tailRing = currRing 
)

Definition at line 1371 of file hilb.cc.

1372 {
1374 
1375  intvec *hseries1 = hFirstSeries(S, modulweight, Q, wdegree, tailRing);
1376 
1377  hPrintHilb(hseries1);
1378 
1379  const int l = hseries1->length()-1;
1380 
1381  intvec *hseries2 = (l > 1) ? hSecondSeries(hseries1) : hseries1;
1382 
1383  int co, mu;
1384  hDegreeSeries(hseries1, hseries2, &co, &mu);
1385 
1386  PrintLn();
1387  hPrintHilb(hseries2);
1388  if ((l == 1) &&(mu == 0))
1389  scPrintDegree(rVar(currRing)+1, 0);
1390  else
1391  scPrintDegree(co, mu);
1392  if (l>1)
1393  delete hseries1;
1394  delete hseries2;
1395 }
#define id_TestTail(A, lR, tR)
Definition: simpleideals.h:79
void PrintLn()
Definition: reporter.cc:310
void mu(int **points, int sizePoints)
void scPrintDegree(int co, int mu)
Definition: hdegree.cc:808
BEGIN_NAMESPACE_SINGULARXX const ring const ring tailRing
Definition: DebugPrint.h:30
static short rVar(const ring r)
#define rVar(r) (r->N)
Definition: ring.h:583
void hDegreeSeries(intvec *s1, intvec *s2, int *co, int *mu)
Definition: hilb.cc:1334
#define Q
Definition: sirandom.c:25
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:10
Definition: intvec.h:14
int length() const
Definition: intvec.h:86
intvec * hSecondSeries(intvec *hseries1)
Definition: hilb.cc:1300
intvec * hFirstSeries(ideal S, intvec *modulweight, ideal Q, intvec *wdegree, ring tailRing)
Definition: hilb.cc:1292
int l
Definition: cfEzgcd.cc:94
static void hPrintHilb(intvec *hseries)
Definition: hilb.cc:1351

§ hSecondSeries()

intvec* hSecondSeries ( intvec hseries1)

Definition at line 1300 of file hilb.cc.

1301 {
1302  intvec *work, *hseries2;
1303  int i, j, k, s, t, l;
1304  if (hseries1 == NULL)
1305  return NULL;
1306  work = new intvec(hseries1);
1307  k = l = work->length()-1;
1308  s = 0;
1309  for (i = k-1; i >= 0; i--)
1310  s += (*work)[i];
1311  loop
1312  {
1313  if ((s != 0) || (k == 1))
1314  break;
1315  s = 0;
1316  t = (*work)[k-1];
1317  k--;
1318  for (i = k-1; i >= 0; i--)
1319  {
1320  j = (*work)[i];
1321  (*work)[i] = -t;
1322  s += t;
1323  t += j;
1324  }
1325  }
1326  hseries2 = new intvec(k+1);
1327  for (i = k-1; i >= 0; i--)
1328  (*hseries2)[i] = (*work)[i];
1329  (*hseries2)[k] = (*work)[l];
1330  delete work;
1331  return hseries2;
1332 }
const CanonicalForm int s
Definition: facAbsFact.cc:55
loop
Definition: myNF.cc:98
int k
Definition: cfEzgcd.cc:93
Definition: intvec.h:14
int j
Definition: myNF.cc:70
int i
Definition: cfEzgcd.cc:123
#define NULL
Definition: omList.c:10
int length() const
Definition: intvec.h:86
int l
Definition: cfEzgcd.cc:94

§ sortMonoIdeal_pCompare()

void sortMonoIdeal_pCompare ( ideal  I)

Definition at line 1652 of file hilb.cc.

1653 {
1654  /*
1655  * sorts the monomial ideal in ascending order
1656  * order must be a total degree
1657  */
1658 
1659  qsort(I->m, IDELEMS(I), sizeof(poly), monCompare);
1660 
1661 }
#define IDELEMS(i)
Definition: simpleideals.h:24
static int monCompare(const void *m, const void *n)
Definition: hilb.cc:1645
polyrec * poly
Definition: hilb.h:10

Variable Documentation

§ currRing

ring currRing

Widely used global variable which specifies the current polynomial ring for Singular interpreter and legacy implementatins. : one should avoid using it in newer designs, for example due to possible problems in parallelization with threads.

Definition at line 10 of file polys.cc.