Functions
containsMonomial.cc File Reference
#include <bbcone.h>
#include <kernel/polys.h>
#include <kernel/GBEngine/kstd1.h>
#include <polys/prCopy.h>

Go to the source code of this file.

Functions

poly checkForMonomialViaSuddenSaturation (const ideal I, const ring r)
 
BOOLEAN checkForMonomial (leftv res, leftv args)
 

Function Documentation

§ checkForMonomial()

BOOLEAN checkForMonomial ( leftv  res,
leftv  args 
)

Definition at line 53 of file containsMonomial.cc.

54 {
55  leftv u = args;
56  if ((u != NULL) && (u->Typ() == IDEAL_CMD))
57  {
58  ideal I; poly monom;
59  omUpdateInfo();
60  Print("usedBytesBefore=%ld\n",om_Info.UsedBytes);
61  I = (ideal) u->CopyD();
63  id_Delete(&I,currRing);
64  p_Delete(&monom,currRing);
65  omUpdateInfo();
66  Print("usedBytesAfter=%ld\n",om_Info.UsedBytes);
67  I = (ideal) u->Data();
68  res->rtyp = POLY_CMD;
70  return FALSE;
71  }
72  return TRUE;
73 }
Class used for (list of) interpreter objects.
Definition: subexpr.h:84
#define Print
Definition: emacs.cc:83
#define FALSE
Definition: auxiliary.h:97
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
#define TRUE
Definition: auxiliary.h:101
int Typ()
Definition: subexpr.cc:979
void * data
Definition: subexpr.h:90
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:10
omInfo_t om_Info
Definition: omStats.c:13
poly checkForMonomialViaSuddenSaturation(const ideal I, const ring r)
static void p_Delete(poly *p, const ring r)
Definition: p_polys.h:843
#define NULL
Definition: omList.c:10
void omUpdateInfo()
Definition: omStats.c:24
int rtyp
Definition: subexpr.h:93
void * Data()
Definition: subexpr.cc:1121
polyrec * poly
Definition: hilb.h:10
void * CopyD(int t)
Definition: subexpr.cc:679

§ checkForMonomialViaSuddenSaturation()

poly checkForMonomialViaSuddenSaturation ( const ideal  I,
const ring  r 
)

Definition at line 6 of file containsMonomial.cc.

7 {
8  ring origin = currRing;
9  if (currRing != r)
11 
12  ideal M = idInit(1);
13  M->m[0] = p_Init(r);
14  for (int i=1; i<=rVar(r); i++)
15  p_SetExp(M->m[0],i,1,r);
16  p_SetCoeff(M->m[0],n_Init(1,r->cf),r);
17  p_Setm(M->m[0],r); p_Test(M->m[0],r);
18 
19  ideal J = id_Copy(I,r); bool b; int k = 0;
20  if (currRing != r) rChangeCurrRing(r);
21  intvec* nullVector = NULL;
22  do
23  {
24  ideal Jstd = kStd(J,currRing->qideal,testHomog,&nullVector);
25  ideal JquotM = idQuot(Jstd,M,true,true);
26  ideal JquotMredJ = kNF(Jstd,currRing->qideal,JquotM);
27  b = idIs0(JquotMredJ);
28  id_Delete(&Jstd,r);
29  id_Delete(&J,r);
30  J = JquotM;
31  id_Delete(&JquotMredJ,r);
32  k++;
33  } while (!b);
34 
35  poly monom = NULL;
36  if (id_IsConstant(J,r))
37  {
38  monom = p_Init(r);
39  for (int i=1; i<=rVar(r); i++)
40  p_SetExp(monom,i,k,r);
41  p_SetCoeff(monom,n_Init(1,r->cf),r);
42  p_Setm(monom,r);
43  }
44  id_Delete(&M,r);
45  id_Delete(&J,r);
46 
47  if (currRing != origin)
48  rChangeCurrRing(origin);
49  return monom;
50 }
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
Definition: kstd1.cc:2971
ideal id_Copy(ideal h1, const ring r)
copy an ideal
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
Definition: coeffs.h:542
static short rVar(const ring r)
#define rVar(r) (r->N)
Definition: ring.h:580
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
BOOLEAN id_IsConstant(ideal id, const ring r)
test if the ideal has only constant polynomials NOTE: zero ideal/module is also constant ...
ideal kStd(ideal F, ideal Q, tHomog h, intvec **w, intvec *hilb, int syzComp, int newIdeal, intvec *vw, s_poly_proc_t sp)
Definition: kstd1.cc:2231
int k
Definition: cfEzgcd.cc:93
ideal idQuot(ideal h1, ideal h2, BOOLEAN h1IsStb, BOOLEAN resultIsIdeal)
Definition: ideals.cc:1260
static number p_SetCoeff(poly p, number n, ring r)
Definition: p_polys.h:407
#define M
Definition: sirandom.c:24
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:10
const ring r
Definition: syzextra.cc:208
Definition: intvec.h:14
int i
Definition: cfEzgcd.cc:123
#define p_Test(p, r)
Definition: p_polys.h:160
void rChangeCurrRing(ring r)
Definition: polys.cc:12
ideal idInit(int idsize, int rank)
initialise an ideal / module
Definition: simpleideals.cc:38
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent : VarOffset encodes the position in p->exp
Definition: p_polys.h:483
#define NULL
Definition: omList.c:10
static void p_Setm(poly p, const ring r)
Definition: p_polys.h:228
polyrec * poly
Definition: hilb.h:10
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
static poly p_Init(const ring r, omBin bin)
Definition: p_polys.h:1243
const poly b
Definition: syzextra.cc:213