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