source: git/Singular/lists.h @ e4292e

fieker-DuValspielwiese
Last change on this file since e4292e was 75f460, checked in by Hans Schoenemann <hannes@…>, 9 years ago
format
  • Property mode set to 100644
File size: 1.8 KB
RevLine 
[0e1846]1#ifndef LISTS_H
2#define LISTS_H
3/****************************************
4*  Computer Algebra System SINGULAR     *
5****************************************/
6/*
7* ABSTRACT: handling of the list type
8*/
[b1dfaf]9#include <omalloc/omalloc.h>
[599326]10#include <kernel/structs.h>
11#include <kernel/ideals.h>
12#include <Singular/subexpr.h>
13#include <Singular/tok.h>
[b7b08c]14
[a3bc95e]15#ifdef MDEBUG
16#define INLINE_THIS
[0f1252]17#else
18#define INLINE_THIS inline
19#endif
[0e1846]20
[bfcb41]21extern omBin slists_bin;
[0e1846]22class slists
23{
24  public:
[16acb0]25    void Clean(ring r=currRing)
[0e1846]26    {
[bb2fb6]27      assume (this!=NULL);
[75f460]28
[bb2fb6]29      if (nr>=0)
[0e1846]30      {
[bb2fb6]31        int i;
32        for(i=nr;i>=0;i--)
[0e1846]33        {
[bb2fb6]34          if (m[i].rtyp!=DEF_CMD) m[i].CleanUp(r);
[0e1846]35        }
[bb2fb6]36        omFreeSize((ADDRESS)m, (nr+1)*sizeof(sleftv));
37        nr=-1;
[0e1846]38      }
[bb2fb6]39      //omFreeSize((ADDRESS)this, sizeof(slists));
40      omFreeBin((ADDRESS)this,slists_bin);
[0e1846]41    }
[bb2fb6]42    INLINE_THIS void Init(int l=0);
[0e1846]43    int    nr; /* the number of elements in the list -1 */
44               /* -1: empty list */
45    sleftv  *m;  /* field of sleftv */
46};
47
[f5a3a23]48typedef slists *           lists;
49
[ecf019]50int lSize(lists L);
[0e1846]51lists lCopy(lists L);
52lists lInsert0(lists ul, leftv v, int pos);
53BOOLEAN lInsert(leftv res, leftv u, leftv v);
54BOOLEAN lInsert3(leftv res, leftv u, leftv v, leftv w);
55BOOLEAN lAppend(leftv res, leftv u, leftv v);
56BOOLEAN lDelete(leftv res, leftv u, leftv v);
57BOOLEAN lAdd(leftv res, leftv u, leftv v);
58BOOLEAN lRingDependend(lists L);
[a79a128]59char* lString(lists l, BOOLEAN typed = FALSE, int dim = 1);
[4b2155]60
[0e1846]61
[f43a74]62lists liMakeResolv(resolvente r, int length, int reallen, int typ0, intvec ** weights,int add_row_shift);
[25003c]63resolvente liFindRes(lists L, int * len, int *typ0,intvec *** weights=NULL);
[0f1252]64
65#if ! defined(MDEBUG) || defined(LISTS_CC)
[50cbdc]66INLINE_THIS void slists::Init(int l)
[c232af]67      { nr=l-1; m=(sleftv *)((l>0) ? omAlloc0(l*sizeof(sleftv)): NULL);
[0f1252]68      }
69#endif
70
71#undef INLINE_THIS
72
[0e1846]73#endif
Note: See TracBrowser for help on using the repository browser.