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 1309 of file hilb.cc.

1310 {
1312  if (Q!= NULL) id_TestTail(Q, currRing, tailRing);
1313 
1314  return hSeries(S, modulweight, 1, wdegree, Q, tailRing);
1315 }
#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:1146
#define NULL
Definition: omList.c:10

◆ hHstdSeries()

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

Definition at line 1302 of file hilb.cc.

1303 {
1305  if (Q!=NULL) id_TestTail(Q, currRing, tailRing);
1306  return hSeries(S, modulweight, 0, wdegree, Q, tailRing);
1307 }
#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:1146
#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 1388 of file hilb.cc.

1389 {
1391 
1392  intvec *hseries1 = hFirstSeries(S, modulweight, Q, wdegree, tailRing);
1393 
1394  hPrintHilb(hseries1);
1395 
1396  const int l = hseries1->length()-1;
1397 
1398  intvec *hseries2 = (l > 1) ? hSecondSeries(hseries1) : hseries1;
1399 
1400  int co, mu;
1401  hDegreeSeries(hseries1, hseries2, &co, &mu);
1402 
1403  PrintLn();
1404  hPrintHilb(hseries2);
1405  if ((l == 1) &&(mu == 0))
1406  scPrintDegree(rVar(currRing)+1, 0);
1407  else
1408  scPrintDegree(co, mu);
1409  if (l>1)
1410  delete hseries1;
1411  delete hseries2;
1412 }
#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:1351
#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:1317
intvec * hFirstSeries(ideal S, intvec *modulweight, ideal Q, intvec *wdegree, ring tailRing)
Definition: hilb.cc:1309
int l
Definition: cfEzgcd.cc:94
static void hPrintHilb(intvec *hseries)
Definition: hilb.cc:1368

◆ hSecondSeries()

intvec* hSecondSeries ( intvec hseries1)

Definition at line 1317 of file hilb.cc.

1318 {
1319  intvec *work, *hseries2;
1320  int i, j, k, s, t, l;
1321  if (hseries1 == NULL)
1322  return NULL;
1323  work = new intvec(hseries1);
1324  k = l = work->length()-1;
1325  s = 0;
1326  for (i = k-1; i >= 0; i--)
1327  s += (*work)[i];
1328  loop
1329  {
1330  if ((s != 0) || (k == 1))
1331  break;
1332  s = 0;
1333  t = (*work)[k-1];
1334  k--;
1335  for (i = k-1; i >= 0; i--)
1336  {
1337  j = (*work)[i];
1338  (*work)[i] = -t;
1339  s += t;
1340  t += j;
1341  }
1342  }
1343  hseries2 = new intvec(k+1);
1344  for (i = k-1; i >= 0; i--)
1345  (*hseries2)[i] = (*work)[i];
1346  (*hseries2)[k] = (*work)[l];
1347  delete work;
1348  return hseries2;
1349 }
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 1655 of file hilb.cc.

1656 {
1657  /*
1658  * sorts the monomial ideal in ascending order
1659  * order must be a total degree
1660  */
1661 
1662  qsort(I->m, IDELEMS(I), sizeof(poly), monCompare);
1663 
1664 }
#define IDELEMS(i)
Definition: simpleideals.h:24
static int monCompare(const void *m, const void *n)
Definition: hilb.cc:1648
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.