Changeset 311d099 in git
- Timestamp:
- Feb 1, 2021, 2:11:17 PM (2 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a657104b677b4c461d018cbf3204d72d34ad66a9')
- Children:
- fc73643642b01f9111d972d15b22bae89ec11d36
- Parents:
- 4218c13e2434358d0a056b78d0a40377a11bcdb1
- Location:
- Singular
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/ipassign.cc
r4218c1 r311d099 171 171 } 172 172 } 173 ring jjSetMinpoly(ring r, number a) 174 { 175 if ( !nCoeff_is_transExt(r->cf) ) 176 { 177 if(!nCoeff_is_algExt(r->cf) ) 173 // change the coeff cf=K[x] (of type n_transExt) to K[x]/a 174 // return NULL in error case 175 coeffs jjSetMinpoly(coeffs cf, number a) 176 { 177 if ( !nCoeff_is_transExt(cf) ) 178 { 179 if(!nCoeff_is_algExt(cf) ) 178 180 { 179 181 WerrorS("cannot set minpoly for these coeffients"); … … 181 183 } 182 184 } 183 if (rVar( r->cf->extRing)!=1)184 { 185 WerrorS("only univari te minpoly allowed");185 if (rVar(cf->extRing)!=1) 186 { 187 WerrorS("only univariate minpoly allowed"); 186 188 return NULL; 187 189 } 188 190 189 assume (r->idroot==NULL); 190 191 number p = n_Copy(a,r->cf); 192 n_Normalize(p, r->cf); 193 194 if (n_IsZero(p, r->cf)) 195 { 196 n_Delete(&p, r->cf); 197 if( nCoeff_is_transExt(r->cf) ) 198 { 199 return r; 200 } 201 WarnS("cannot set minpoly to 0 / alg. extension?"); 202 return NULL; 203 } 204 r=rCopy(r); 205 // remove all object currently in the ring 191 number p = n_Copy(a,cf); 192 n_Normalize(p, cf); 193 194 if (n_IsZero(p, cf)) 195 { 196 n_Delete(&p, cf); 197 return cf; 198 } 206 199 207 200 AlgExtInfo A; 208 201 209 A.r = rCopy( r->cf->extRing); // Copy ground field!202 A.r = rCopy(cf->extRing); // Copy ground field! 210 203 // if minpoly was already set: 211 if( r->cf->extRing->qideal != NULL ) id_Delete(&(A.r->qideal),A.r);204 if( cf->extRing->qideal != NULL ) id_Delete(&(A.r->qideal),A.r); 212 205 ideal q = idInit(1,1); 213 206 if ((p==NULL) ||(NUM((fraction)p)==NULL)) … … 216 209 // cleanup A: TODO 217 210 rDelete( A.r ); 218 rDelete(r);219 211 return NULL; 220 212 } … … 222 214 { 223 215 poly n=DEN((fraction)(p)); 224 if(!p_IsConstant(n, r->cf->extRing))216 if(!p_IsConstant(n,cf->extRing)) 225 217 { 226 218 WarnS("denominator must be constant - ignoring it"); 227 219 } 228 p_Delete(&n, r->cf->extRing);220 p_Delete(&n,cf->extRing); 229 221 DEN((fraction)(p))=NULL; 230 222 } … … 240 232 if (new_cf==NULL) 241 233 { 242 WerrorS("Could not construct the alg. extension: llegal minpoly?");234 WerrorS("Could not construct the alg. extension: illegal minpoly?"); 243 235 // cleanup A: TODO 244 236 rDelete( A.r ); 245 rDelete(r);246 237 return NULL; 247 238 } 248 else 249 { 250 nKillChar(r->cf); r->cf=new_cf; 251 } 252 return r; 239 return new_cf; 253 240 } 254 241 -
Singular/ipshell.h
r4218c1 r311d099 171 171 /* Assigments : */ 172 172 BOOLEAN iiAssign(leftv left, leftv right, BOOLEAN toplevel=TRUE); 173 ring jjSetMinpoly(ring r, number a);173 coeffs jjSetMinpoly(coeffs cf, number a); 174 174 175 175 typedef BOOLEAN (*proci)(leftv,leftv,Subexpr);
Note: See TracChangeset
for help on using the changeset viewer.