Changeset a9a7be in git for Singular/structs.h


Ignore:
Timestamp:
Sep 27, 1999, 5:05:35 PM (25 years ago)
Author:
Olaf Bachmann <obachman@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'd08f5f0bb3329b8ca19f23b74cb1473686415c3a')
Children:
7c19609b3106a80912e66f6ac4fa0fa446532b1f
Parents:
7d423ecfe560c226d3e99aed883841c463e884ec
Message:
* walk stuff


git-svn-id: file:///usr/local/Singular/svn/trunk@3682 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/structs.h

    r7d423e ra9a7be  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: structs.h,v 1.22 1999-07-28 17:51:07 Singular Exp $ */
     6/* $Id: structs.h,v 1.23 1999-09-27 15:05:33 obachman Exp $ */
    77/*
    88* ABSTRACT
     
    118118typedef struct _scmdnames cmdnames;
    119119
     120typedef enum
     121{
     122  ro_dp, // ordering is a degree ordering
     123  ro_wp, // ordering is a weighted degree ordering
     124  ro_cp, // ordering duplicates variables
     125  ro_syzcomp, // ordering indicates "subset" of component number
     126  ro_none
     127}
     128ro_typ;
     129
     130// ordering is a degree ordering
     131struct sro_dp
     132{
     133  short place;  // where degree is stored (in L):
     134  short start;  // bounds of ordering (in E):
     135  short end;
     136};
     137typedef struct sro_dp sro_dp;
     138
     139// ordering is a weighted degree ordering
     140struct sro_wp
     141{
     142  short place;  // where weighted degree is stored (in L)
     143  short start;  // bounds of ordering (in E)
     144  short end;
     145  int *weights; // pointers into wvhdl field
     146};
     147typedef struct sro_wp sro_wp;
     148
     149// ordering duplicates variables
     150struct sro_cp
     151{
     152  short place;  // where start is copied to (in E)
     153  short start;  // bounds of sources of copied variables (in E)
     154  short end;
     155};
     156typedef struct sro_cp sro_cp;
     157
     158// ordering indicates "subset" of component number
     159struct sro_syzcomp
     160{
     161  short place;  // where the index is stored (in L)
     162  long *ShiftedComponents; // pointer into index field
     163  int* Components;
     164#ifdef PDEBUG
     165  long length;
     166#endif
     167};
     168typedef struct sro_syzcomp sro_syzcomp;
     169
     170
     171struct sro_ord
     172{
     173  ro_typ  ord_typ;
     174  union
     175  {
     176     sro_dp dp;
     177     sro_wp wp;
     178     sro_cp cp;
     179     sro_syzcomp syzcomp;
     180  } data;
     181};
     182
    120183struct sip_sring
    121184{
     
    126189  char**     parameter; /* names of parameters */
    127190  number     minpoly;
    128   short**    wvhdl;  /* array of weight vectors */
     191  int**      wvhdl;  /* array of weight vectors */
    129192  char **    names;  /* array of variable names */
    130   /* extension to the ring structure: qring */
    131   ideal      qideal;
     193
     194  // what follows below here should be set by rComplete, _only_
     195  long      *ordsgn;  /* array of +/- 1 (or 0) for comparing monomials */
     196                       /*  ExpLSize entries*/
     197
     198  // is NULL for lp or N == 1, otherwise non-NULL (with OrdSize > 0 entries) */
     199  sro_ord *  typ;   /* array of orderings + sizes, OrdSize entries */
     200
     201  ideal      qideal; /* extension to the ring structure: qring */
     202
     203  int      *VarOffset; /* mapping exp. of var(i) -> p->exp.e[VarOffset[i]] */
     204
     205  memHeap   mm_specHeap; /* Heap from where monoms are allocated */
    132206#ifdef SDRING
    133207  short      partN;
     
    135209  short      ch;     /* characteristic */
    136210  short      ch_flags; /* additional char-flags */
     211
    137212  short      N;      /* number of vars */
    138213
    139214  short      P;      /* number of pars */
    140215  short      OrdSgn; /* 1 for polynomial rings, -1 otherwise */
    141 
    142   short      ref;
    143 
    144216  // what follows below here should be set by rComplete, _only_
    145   int       *VarOffset;   /* controls indexing of exponents */
    146   short     VarCompIndex; /* location of component in exp vector */
    147   short     VarLowIndex;  /* lowest index of an exponent */
    148   short     VarHighIndex; /* Highest index of an expoentn */
    149 
    150 #ifdef RDEBUG
    151   short      no; /* unique id for rings */
    152 #endif
     217  short      pVarLowIndex;  /* lowest index of a variable */
     218  short      pVarHighIndex; /* highest index of a variable */
     219                            /* pVarLow to pVarHigh */
     220  // contains component, but no weight fields in E */
     221  // better: pVarLowIndexE / pVarLowIndexL
     222  short      pDivLow;
     223  short      pDivHigh; /* the same as pVarLow..pVarHigh, */
     224                       /* but as index in the 'long' field */
     225
     226  short      pCompLowIndex; // better: use pCompareLowIndexL
     227  short      pCompHighIndex; /* use p->exp.l[pCompLowIndex..ppCompHighIndex] */
     228                             /* for comparing monomials */
     229  short      pCompLSize; // pCompHighIndex - pCompLowIndex + 1
     230
     231  short      pCompIndex; /* p->exp.e[pCompIndex] is the component */
     232  short      pOrdIndex; /* p->exp.l[pOrdIndex] is pGetOrd(p) */
     233
     234  short      ExpESize; /* size of exponent vector in Exponent_t */
     235  short      ExpLSize; /* size of exponent vector in long */
     236  short      OrdSize; /* size of ord vector (in sro_ord) */
     237
     238  short      ref; /* reference counter to the ring */
    153239};
    154240
Note: See TracChangeset for help on using the changeset viewer.