source: git/Singular/lists.h @ 650f2d8

fieker-DuValspielwiese
Last change on this file since 650f2d8 was b1dfaf, checked in by Frank Seelisch <seelisch@…>, 14 years ago
patch from Kai (checked for problems under Windows OS: no problems) git-svn-id: file:///usr/local/Singular/svn/trunk@13210 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • 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****************************************/
[341696]6/* $Id$ */
[0e1846]7/*
8* ABSTRACT: handling of the list type
9*/
[b1dfaf]10#include <omalloc/omalloc.h>
[599326]11#include <kernel/structs.h>
12#include <kernel/ideals.h>
13#include <Singular/subexpr.h>
14#include <Singular/tok.h>
[b7b08c]15
[a3bc95e]16#ifdef MDEBUG
17#define INLINE_THIS
[0f1252]18#else
19#define INLINE_THIS inline
20#endif
[0e1846]21
[bfcb41]22extern omBin slists_bin;
[0e1846]23class slists
24{
25  public:
[16acb0]26    void Clean(ring r=currRing)
[0e1846]27    {
28      if (this!=NULL)
29      {
30        if (nr>=0)
31        {
32          int i;
33          for(i=nr;i>=0;i--)
34          {
[16acb0]35            if (m[i].rtyp!=DEF_CMD) m[i].CleanUp(r);
[0e1846]36          }
[c232af]37          omFreeSize((ADDRESS)m, (nr+1)*sizeof(sleftv));
[0e1846]38          nr=-1;
39        }
[bfcb41]40        //omFreeSize((ADDRESS)this, sizeof(slists));
41        omFreeBin((ADDRESS)this,slists_bin);
[0e1846]42      }
43    }
[0f1252]44  INLINE_THIS void Init(int l=0);
[0e1846]45    int    nr; /* the number of elements in the list -1 */
46               /* -1: empty list */
47    sleftv  *m;  /* field of sleftv */
48};
49
50lists lCopy(lists L);
51lists lInsert0(lists ul, leftv v, int pos);
52BOOLEAN lInsert(leftv res, leftv u, leftv v);
53BOOLEAN lInsert3(leftv res, leftv u, leftv v, leftv w);
54BOOLEAN lAppend(leftv res, leftv u, leftv v);
55BOOLEAN lDelete(leftv res, leftv u, leftv v);
56BOOLEAN lAdd(leftv res, leftv u, leftv v);
57BOOLEAN lRingDependend(lists L);
[a79a128]58char* lString(lists l, BOOLEAN typed = FALSE, int dim = 1);
[4b2155]59
[0e1846]60
[f43a74]61lists liMakeResolv(resolvente r, int length, int reallen, int typ0, intvec ** weights,int add_row_shift);
[25003c]62resolvente liFindRes(lists L, int * len, int *typ0,intvec *** weights=NULL);
[0f1252]63
64#if ! defined(MDEBUG) || defined(LISTS_CC)
[50cbdc]65INLINE_THIS void slists::Init(int l)
[c232af]66      { nr=l-1; m=(sleftv *)((l>0) ? omAlloc0(l*sizeof(sleftv)): NULL);
[0f1252]67      }
68#endif
69
70#undef INLINE_THIS
71
[0e1846]72#endif
Note: See TracBrowser for help on using the repository browser.