lists.h
Go to the documentation of this file.
1 #ifndef LISTS_H
2 #define LISTS_H
3 /****************************************
4 * Computer Algebra System SINGULAR *
5 ****************************************/
6 /*
7 * ABSTRACT: handling of the list type
8 */
9 #include "omalloc/omalloc.h"
10 
11 #include "kernel/structs.h"
12 #include "kernel/ideals.h"
13 #include "Singular/subexpr.h"
14 #include "Singular/tok.h"
15 
16 #ifdef MDEBUG
17 #define INLINE_THIS
18 #else
19 #define INLINE_THIS inline
20 #endif
21 
22 extern omBin slists_bin;
23 class slists
24 {
25  public:
26  void Clean(ring r=currRing)
27  {
28  assume (this!=NULL);
29 
30  if (nr>=0)
31  {
32  int i;
33  for(i=nr;i>=0;i--)
34  {
35  if (m[i].rtyp!=DEF_CMD) m[i].CleanUp(r);
36  }
37  omFreeSize((ADDRESS)m, (nr+1)*sizeof(sleftv));
38  nr=-1;
39  }
40  //omFreeSize((ADDRESS)this, sizeof(slists));
42  }
43  INLINE_THIS void Init(int l=0);
44  int nr; /* the number of elements in the list -1 */
45  /* -1: empty list */
46  sleftv *m; /* field of sleftv */
47 };
48 
49 typedef slists * lists;
50 
51 int lSize(lists L);
52 lists lCopy(lists L);
53 lists lInsert0(lists ul, leftv v, int pos);
60 char* lString(lists l, BOOLEAN typed = FALSE, int dim = 1);
61 
62 
63 lists liMakeResolv(resolvente r, int length, int reallen, int typ0, intvec ** weights,int add_row_shift);
64 resolvente liFindRes(lists L, int * len, int *typ0,intvec *** weights=NULL);
65 
66 #if ! defined(MDEBUG) || defined(LISTS_CC)
67 INLINE_THIS void slists::Init(int l)
68  { nr=l-1; m=(sleftv *)((l>0) ? omAlloc0(l*sizeof(sleftv)): NULL);
69  }
70 #endif
71 
72 #undef INLINE_THIS
73 
74 #endif
int lSize(lists L)
Definition: lists.cc:25
sleftv * m
Definition: lists.h:46
Class used for (list of) interpreter objects.
Definition: subexpr.h:82
omBin_t * omBin
Definition: omStructs.h:12
Definition: lists.h:23
#define FALSE
Definition: auxiliary.h:94
lists liMakeResolv(resolvente r, int length, int reallen, int typ0, intvec **weights, int add_row_shift)
Definition: lists.cc:216
omBin slists_bin
Definition: lists.cc:23
lists lInsert0(lists ul, leftv v, int pos)
Definition: lists.cc:87
#define omFreeSize(addr, size)
Definition: omAllocDecl.h:260
void * ADDRESS
Definition: auxiliary.h:133
char * lString(lists l, BOOLEAN typed=FALSE, int dim=1)
Definition: lists.cc:380
#define INLINE_THIS
Definition: lists.h:17
slists * lists
Definition: lists.h:49
resolvente liFindRes(lists L, int *len, int *typ0, intvec ***weights=NULL)
Definition: lists.cc:315
lists lCopy(lists L)
Definition: lists.cc:32
Definition: intvec.h:19
BOOLEAN lInsert3(leftv res, leftv u, leftv v, leftv w)
Definition: lists.cc:135
CanonicalForm res
Definition: facAbsFact.cc:64
Definition: tok.h:58
#define assume(x)
Definition: mod2.h:390
int dim(ideal I, ring r)
int i
Definition: cfEzgcd.cc:125
BOOLEAN lAppend(leftv res, leftv u, leftv v)
Definition: lists.cc:151
INLINE_THIS void Init(int l=0)
const Variable & v
< [in] a sqrfree bivariate poly
Definition: facBivar.h:37
int nr
Definition: lists.h:44
BOOLEAN lDelete(leftv res, leftv u, leftv v)
Definition: lists.cc:161
#define NULL
Definition: omList.c:12
static BOOLEAN length(leftv result, leftv arg)
Definition: interval.cc:263
const CanonicalForm & w
Definition: facAbsFact.cc:55
void CleanUp(ring r=currRing)
Definition: subexpr.cc:348
void Clean(ring r=currRing)
Definition: lists.h:26
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Definition: polys.cc:12
BOOLEAN lInsert(leftv res, leftv u, leftv v)
Definition: lists.cc:120
ideal * resolvente
Definition: ideals.h:18
BOOLEAN lRingDependend(lists L)
Definition: lists.cc:199
#define omFreeBin(addr, bin)
Definition: omAllocDecl.h:259
int BOOLEAN
Definition: auxiliary.h:85
BOOLEAN lAdd(leftv res, leftv u, leftv v)
Definition: lists.cc:51
#define omAlloc0(size)
Definition: omAllocDecl.h:211
int l
Definition: cfEzgcd.cc:93