source: git/Singular/lists.h @ e3c628

spielwiese
Last change on this file since e3c628 was a3f0fea, checked in by Reimer Behrends <behrends@…>, 5 years ago
Modify variable declarions for pSingular.
  • Property mode set to 100644
File size: 1.8 KB
Line 
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
22EXTERN_VAR omBin slists_bin;
23class 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));
41      omFreeBin((ADDRESS)this,slists_bin);
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
49typedef slists *           lists;
50
51int lSize(lists L);
52lists lCopy(lists L);
53lists lInsert0(lists ul, leftv v, int pos);
54BOOLEAN lInsert(leftv res, leftv u, leftv v);
55BOOLEAN lInsert3(leftv res, leftv u, leftv v, leftv w);
56BOOLEAN lAppend(leftv res, leftv u, leftv v);
57BOOLEAN lDelete(leftv res, leftv u, leftv v);
58BOOLEAN lAdd(leftv res, leftv u, leftv v);
59BOOLEAN lRingDependend(lists L);
60char* lString(lists l, BOOLEAN typed = FALSE, int dim = 1);
61
62
63lists liMakeResolv(resolvente r, int length, int reallen, int typ0, intvec ** weights,int add_row_shift);
64resolvente liFindRes(lists L, int * len, int *typ0,intvec *** weights=NULL);
65
66#if ! defined(MDEBUG) || defined(LISTS_CC)
67INLINE_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
Note: See TracBrowser for help on using the repository browser.