Changeset a9a7be in git for Singular/structs.h
- Timestamp:
- Sep 27, 1999, 5:05:35 PM (25 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'd08f5f0bb3329b8ca19f23b74cb1473686415c3a')
- Children:
- 7c19609b3106a80912e66f6ac4fa0fa446532b1f
- Parents:
- 7d423ecfe560c226d3e99aed883841c463e884ec
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/structs.h
r7d423e ra9a7be 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: structs.h,v 1.2 2 1999-07-28 17:51:07 SingularExp $ */6 /* $Id: structs.h,v 1.23 1999-09-27 15:05:33 obachman Exp $ */ 7 7 /* 8 8 * ABSTRACT … … 118 118 typedef struct _scmdnames cmdnames; 119 119 120 typedef 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 } 128 ro_typ; 129 130 // ordering is a degree ordering 131 struct sro_dp 132 { 133 short place; // where degree is stored (in L): 134 short start; // bounds of ordering (in E): 135 short end; 136 }; 137 typedef struct sro_dp sro_dp; 138 139 // ordering is a weighted degree ordering 140 struct 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 }; 147 typedef struct sro_wp sro_wp; 148 149 // ordering duplicates variables 150 struct 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 }; 156 typedef struct sro_cp sro_cp; 157 158 // ordering indicates "subset" of component number 159 struct 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 }; 168 typedef struct sro_syzcomp sro_syzcomp; 169 170 171 struct 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 120 183 struct sip_sring 121 184 { … … 126 189 char** parameter; /* names of parameters */ 127 190 number minpoly; 128 short**wvhdl; /* array of weight vectors */191 int** wvhdl; /* array of weight vectors */ 129 192 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 */ 132 206 #ifdef SDRING 133 207 short partN; … … 135 209 short ch; /* characteristic */ 136 210 short ch_flags; /* additional char-flags */ 211 137 212 short N; /* number of vars */ 138 213 139 214 short P; /* number of pars */ 140 215 short OrdSgn; /* 1 for polynomial rings, -1 otherwise */ 141 142 short ref;143 144 216 // 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 */ 153 239 }; 154 240
Note: See TracChangeset
for help on using the changeset viewer.