Changeset a9a5cf8 in git
- Timestamp:
- Jan 30, 2003, 3:53:42 PM (21 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 73c183e64c399fcc250e8964df3457cc5be93544
- Parents:
- f49ee6feb3fddafcdda5d98c40b25f3f82a38afa
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/longalg.cc
rf49ee6 ra9a5cf8 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: longalg.cc,v 1.6 8 2002-07-23 13:09:35Singular Exp $ */4 /* $Id: longalg.cc,v 1.69 2003-01-30 14:53:42 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: algebraic numbers … … 35 35 #else /* LONGALGNEW */ 36 36 #define naParNames (currRing->parameter) 37 #define napNormalize(p) p_Normalize(p,nacRing) 37 38 #endif /* LONGALGNEW */ 38 39 static int naIsChar0; … … 72 73 static BOOLEAN napDivPoly(napoly p, napoly q); 73 74 static int napExpi(int i, napoly a, napoly b); 75 static ring nacRing; 74 76 75 77 static number nadGcd( number a, number b, const ring r) { return nacInit(1); } … … 102 104 { 103 105 naIsChar0 = 1; 104 nacDelete = nlDelete;105 nacInit = nlInit;106 nacInt = nlInt;107 nacCopy = nlCopy;108 nacAdd = nlAdd;109 nacSub = nlSub;110 nacMult = nlMult;111 nacDiv = nlDiv;112 nacIntDiv = nlIntDiv;113 nacInvers = nlInvers;114 nacNormalize = nlNormalize;115 nacNeg = nlNeg;116 nacIsZero = nlIsZero;117 nacRead = nlRead;118 nacWrite = nlWrite;119 nacGreaterZero = nlGreaterZero;120 nacIsOne = nlIsOne;121 nacIsMOne = nlIsMOne;122 nacGcd = nlGcd;123 nacLcm = nlLcm;124 106 } 125 107 else if (i < 0) 126 108 { 127 109 naIsChar0 = 0; 128 nacDelete = ndDelete; 129 npSetChar(-i, r->algring); // to be changes HS 130 nacInit = npInit; 131 nacInt = npInt; 132 nacCopy = ndCopy; 133 nacAdd = npAdd; 134 nacSub = npSub; 135 nacMult = npMult; 136 nacDiv = npDiv; 137 nacIntDiv = npDiv; 138 nacInvers = npInvers; 139 nacNormalize = nDummy2; 140 nacNeg = npNeg; 141 nacIsZero = npIsZero; 142 nacRead = npRead; 143 nacWrite = npWrite; 144 nacGreaterZero = npGreaterZero; 145 nacIsOne = npIsOne; 146 nacIsMOne = npIsMOne; 147 nacGcd = nadGcd; 148 nacLcm = nadGcd; 110 npSetChar(-i, r->algring); // to be changed HS 149 111 } 150 112 #ifdef TEST … … 154 116 } 155 117 #endif 118 nacRing = r->algring; 119 nacInit = nacRing->cf->nInit; 120 nacInt = nacRing->cf->nInt; 121 nacCopy = nacRing->cf->nCopy; 122 nacAdd = nacRing->cf->nAdd; 123 nacSub = nacRing->cf->nSub; 124 nacNormalize = nacRing->cf->nNormalize; 125 nacNeg = nacRing->cf->nNeg; 126 nacIsZero = nacRing->cf->nIsZero; 127 nacRead = nacRing->cf->nRead; 128 nacWrite = nacRing->cf->nWrite; 129 nacGreaterZero = nacRing->cf->nGreaterZero; 130 nacIsOne = nacRing->cf->nIsOne; 131 nacIsMOne = nacRing->cf->nIsMOne; 132 nacGcd = nacRing->cf->nGcd; 133 nacLcm = nacRing->cf->nLcm; 134 nacDelete = nacRing->cf->cfDelete; 135 nacMult = nacRing->cf->nMult; 136 nacDiv = nacRing->cf->nDiv; 137 nacIntDiv = nacRing->cf->nIntDiv; 138 nacInvers = nacRing->cf->nInvers; 156 139 } 157 140 … … 195 178 #define napMultCopy(p,q) napMult(napCopy(p),napCopy(q)) 196 179 #define napIsConstant(p) (napDeg(p)==0) 197 #define napSetCoeff(p,n) {nacDelete(&((p)->ko), currRing);(p)->ko=n;}198 #else /* LONGALGNEW */ 199 #define napInit(i) (napoly)p_ISet(i, currRing->algring)200 #define napSetCoeff(p,n) {nacDelete(&napGetCoeff(p), currRing);napGetCoeff(p)=n;}201 #define napDelete1(p) p_LmDelete((poly *)p, currRing->algring)202 #define napCopy(p) (napoly)p_Copy((poly)p, currRing->algring)180 #define napSetCoeff(p,n) {nacDelete(&((p)->ko),nacRing);(p)->ko=n;} 181 #else /* LONGALGNEW */ 182 #define napInit(i) (napoly)p_ISet(i,nacRing) 183 #define napSetCoeff(p,n) {nacDelete(&napGetCoeff(p),nacRing);napGetCoeff(p)=n;} 184 #define napDelete1(p) p_LmDelete((poly *)p, nacRing) 185 #define napCopy(p) (napoly)p_Copy((poly)p,nacRing) 203 186 #define nap_Copy(p,r) (napoly)p_Copy((poly)p,r->algring) 204 #define napComp(p,q) p_LmCmp((poly)p,(poly)q, currRing->algring)205 #define napMultT(A,E) A=(napoly)p_Mult_mm((poly)A,(poly)E, currRing->algring)206 #define napMult(A,B) (napoly)p_Mult_q((poly)A,(poly)B, currRing->algring)207 #define napMultCopy(A,B) (napoly)pp_Mult_qq((poly)A,(poly)B, currRing->algring)208 #define napIsConstant(p) p_LmIsConstant(p, currRing->algring)209 #define napDeg(p) (int)p_ExpVectorQuerSum(p, currRing->algring)187 #define napComp(p,q) p_LmCmp((poly)p,(poly)q, nacRing) 188 #define napMultT(A,E) A=(napoly)p_Mult_mm((poly)A,(poly)E,nacRing) 189 #define napMult(A,B) (napoly)p_Mult_q((poly)A,(poly)B,nacRing) 190 #define napMultCopy(A,B) (napoly)pp_Mult_qq((poly)A,(poly)B,nacRing) 191 #define napIsConstant(p) p_LmIsConstant(p,nacRing) 192 #define napDeg(p) (int)p_ExpVectorQuerSum(p, nacRing) 210 193 #endif /* LONGALGNEW */ 211 194 … … 218 201 napoly a = (napoly)omAlloc0(napMonomSize); 219 202 #else /* LONGALGNEW */ 220 napoly a = (napoly)p_Init( currRing->algring);203 napoly a = (napoly)p_Init(nacRing); 221 204 #endif /* LONGALGNEW */ 222 205 napGetCoeff(a) = z; … … 235 218 { 236 219 *p = h->ne; 237 nacDelete(&(h->ko), currRing);220 nacDelete(&(h->ko),nacRing); 238 221 omFreeSize((ADDRESS)h, napMonomSize); 239 222 } … … 251 234 w = h; 252 235 h = h->ne; 253 nacDelete(&(w->ko), currRing);236 nacDelete(&(w->ko),nacRing); 254 237 omFreeSize((ADDRESS)w, napMonomSize); 255 238 } … … 265 248 w = h; 266 249 h = h->ne; 267 n_Delete(&(w->ko), currRing->algring);250 n_Delete(&(w->ko),r->algring); 268 251 omFree((ADDRESS)w); 269 252 } … … 283 266 omCheckAddrSize(p,napMonomSize); 284 267 a = w = (napoly)omAlloc(napMonomSize); 285 memcpy (w->e, p->e, naNumbOfPar * SIZEOF_PARAMETER);268 memcpy4(w->e, p->e, naNumbOfPar * SIZEOF_PARAMETER); 286 269 w->ko = nacCopy(p->ko); 287 270 loop … … 292 275 a->ne = (napoly)omAlloc(napMonomSize); 293 276 a = a->ne; 294 memcpy (a->e, p->e, naNumbOfPar * SIZEOF_PARAMETER);277 memcpy4(a->e, p->e, naNumbOfPar * SIZEOF_PARAMETER); 295 278 a->ko = nacCopy(p->ko); 296 279 } … … 311 294 omCheckAddrSize(p,napMonomSize); 312 295 a = w = (napoly)omAlloc(napMonomSize); 313 memcpy (w->e, p->e, naNumbOfPar * SIZEOF_PARAMETER);296 memcpy4(w->e, p->e, naNumbOfPar * SIZEOF_PARAMETER); 314 297 w->ko = nacNeg(nacCopy(p->ko)); 315 298 loop … … 320 303 a->ne = (napoly)omAlloc(napMonomSize); 321 304 a = a->ne; 322 memcpy (a->e, p->e, naNumbOfPar * SIZEOF_PARAMETER);305 memcpy4(a->e, p->e, naNumbOfPar * SIZEOF_PARAMETER); 323 306 a->ko = nacNeg(nacCopy(p->ko)); 324 307 } … … 327 310 #else /* LONGALGNEW */ 328 311 napoly r=napCopy(p); 329 r=(napoly)p_Neg((poly)r, currRing->algring);312 r=(napoly)p_Neg((poly)r, nacRing); 330 313 return r; 331 314 #endif /* LONGALGNEW */ … … 400 383 if (nacIsZero(t)) 401 384 { 402 nacDelete(&t, currRing);385 nacDelete(&t,nacRing); 403 386 napDelete1(&a1); 404 387 } 405 388 else 406 389 { 407 nacDelete(&(a1->ko), currRing);390 nacDelete(&(a1->ko),nacRing); 408 391 a1->ko = t; 409 392 a = a->ne = a1; … … 458 441 t = nacMult(napGetCoeff(p), z); 459 442 nacNormalize(t); 460 nacDelete(&napGetCoeff(p), currRing);443 nacDelete(&napGetCoeff(p),nacRing); 461 444 napGetCoeff(p) = t; 462 445 napIter(p); … … 508 491 { 509 492 t = nacMult(a->ko, h); 510 nacDelete(&(a->ko), currRing);493 nacDelete(&(a->ko),nacRing); 511 494 a->ko = t; 512 495 for (i = naNumbOfPar - 1; i >= 0; i--) … … 602 585 qq = (napoly)omAlloc(napMonomSize); 603 586 #else /* LONGALGNEW */ 604 qq = (napoly)p_Init( currRing->algring);587 qq = (napoly)p_Init(nacRing); 605 588 #endif /* LONGALGNEW */ 606 589 napNext(qq) = NULL; 590 napNormalize(g); 591 napNormalize(f); 607 592 a = f; 608 593 do 609 594 { 610 595 napSetExp(qq,1, napGetExp(a,1) - napGetExp(g,1)); 596 p_Setm(qq,nacRing); 611 597 napGetCoeff(qq) = nacDiv(napGetCoeff(a), napGetCoeff(g)); 612 598 napGetCoeff(qq) = nacNeg(napGetCoeff(qq)); 599 nacNormalize(napGetCoeff(qq)); 613 600 h = napCopy(g); 614 601 napMultT(h, qq); 615 nacDelete(&napGetCoeff(qq),currRing); 602 napNormalize(h); 603 nacDelete(&napGetCoeff(qq),nacRing); 616 604 a = napAdd(a, h); 617 605 } … … 635 623 qq = (napoly)omAlloc(napMonomSize); 636 624 #else /* LONGALGNEW */ 637 qq = (napoly)p_Init( currRing->algring);625 qq = (napoly)p_Init(nacRing); 638 626 #endif /* LONGALGNEW */ 639 627 napNext(qq) = b = NULL; 628 napNormalize(g); 629 napNormalize(f); 640 630 a = f; 641 631 do 642 632 { 643 633 napSetExp(qq,1, napGetExp(a,1) - napGetExp(g,1)); 634 p_Setm(qq,nacRing); 644 635 napGetCoeff(qq) = nacDiv(napGetCoeff(a), napGetCoeff(g)); 636 nacNormalize(napGetCoeff(qq)); 645 637 b = napAdd(b, napCopy(qq)); 646 638 napGetCoeff(qq) = nacNeg(napGetCoeff(qq)); 647 639 h = napCopy(g); 648 640 napMultT(h, qq); 649 nacDelete(&napGetCoeff(qq),currRing); 641 napNormalize(h); 642 nacDelete(&napGetCoeff(qq),nacRing); 650 643 a = napAdd(a, h); 651 644 } … … 678 671 if (!nacIsOne(napGetCoeff(x))) 679 672 { 680 h = nacInit(1);681 t = nac Div(h,napGetCoeff(x));682 nac Delete(&napGetCoeff(x),currRing);683 nacDelete(& h,currRing);673 nacNormalize(napGetCoeff(x)); 674 t = nacInvers(napGetCoeff(x)); 675 nacNormalize(t); 676 nacDelete(&napGetCoeff(x),nacRing); 684 677 napGetCoeff(x) = t; 685 678 } … … 694 687 if (napGetExp(r,1)==0) 695 688 { 696 h = nacInit(-1);697 t = nac Div(h,napGetCoeff(r));689 nacNormalize(napGetCoeff(r)); 690 t = nacInvers(napGetCoeff(r)); 698 691 nacNormalize(t); 692 t = nacNeg(t); 699 693 napMultN(qa, t); 700 nacDelete(& h,currRing);701 na cDelete(&t,currRing);694 nacDelete(&t,nacRing); 695 napNormalize(qa); 702 696 napDelete(&x); 703 697 napDelete(&r); … … 715 709 q = napMult(q, qa); 716 710 q = napAdd(q, napInit(1)); 717 h = nacInit(1);718 t = nac Div(h,napGetCoeff(r));711 nacNormalize(napGetCoeff(r)); 712 t = nacInvers(napGetCoeff(r)); 719 713 napMultN(q, t); 720 na cDelete(&h,currRing);721 nacDelete(&t, currRing);714 napNormalize(q); 715 nacDelete(&t,nacRing); 722 716 napDelete(&x); 723 717 napDelete(&r); … … 743 737 q = napNeg(q); 744 738 q = napAdd(q, qa); 745 h = nacInit(1); 746 t = nacDiv(h, napGetCoeff(r)); 739 nacNormalize(napGetCoeff(r)); 740 t = nacInvers(napGetCoeff(r)); 741 //nacNormalize(t); 747 742 napMultN(q, t); 748 na cDelete(&h,currRing);749 nacDelete(&t, currRing);743 napNormalize(q); 744 nacDelete(&t,nacRing); 750 745 napDelete(&x); 751 746 napDelete(&r); … … 816 811 *writes a polynomial number 817 812 */ 818 void napWrite(napoly p )813 void napWrite(napoly p,const BOOLEAN has_denom) 819 814 { 820 815 if (p==NULL) … … 822 817 else if (napIsConstant(p)) 823 818 { 819 BOOLEAN kl=FALSE; 820 if (has_denom) 821 { 822 number den=nacRing->cf->n_GetDenom(napGetCoeff(p), nacRing); 823 kl=!n_IsOne(den,nacRing); 824 n_Delete(&den, nacRing); 825 } 826 if (kl) StringAppendS("("); 824 827 //StringAppendS("-1"); 825 828 nacWrite(napGetCoeff(p)); 829 if (kl) StringAppendS(")"); 826 830 } 827 831 else … … 859 863 } 860 864 } 861 } 865 } /*for*/ 862 866 napIter(p); 863 867 if (p==NULL) … … 908 912 a = (napoly)omAlloc0(napMonomSize); 909 913 #else /* LONGALGNEW */ 910 a = (napoly)p_Init( currRing->algring);914 a = (napoly)p_Init(nacRing); 911 915 #endif /* LONGALGNEW */ 912 916 if ((*s >= '0') && (*s <= '9')) … … 997 1001 do 998 1002 { 999 d=nacGcd(napGetCoeff(p), h, currRing);1003 d=nacGcd(napGetCoeff(p), h, nacRing); 1000 1004 if(nacIsOne(d)) 1001 1005 { 1002 nacDelete(&h, currRing);1003 nacDelete(&d, currRing);1006 nacDelete(&h,nacRing); 1007 nacDelete(&d,nacRing); 1004 1008 return; 1005 1009 } 1006 nacDelete(&h, currRing);1010 nacDelete(&h,nacRing); 1007 1011 h = d; 1008 1012 napIter(p); … … 1010 1014 while (p!=NULL); 1011 1015 h = nacInvers(d); 1012 nacDelete(&d, currRing);1016 nacDelete(&d,nacRing); 1013 1017 p = ph; 1014 1018 while (p!=NULL) 1015 1019 { 1016 1020 d = nacMult(napGetCoeff(p), h); 1017 nacDelete(&napGetCoeff(p), currRing);1021 nacDelete(&napGetCoeff(p),nacRing); 1018 1022 napGetCoeff(p) = d; 1019 1023 napIter(p); 1020 1024 } 1021 nacDelete(&h, currRing);1025 nacDelete(&h,nacRing); 1022 1026 } 1023 1027 … … 1033 1037 while (p!=NULL) 1034 1038 { 1035 d = nacLcm(h, napGetCoeff(p), currRing);1036 nacDelete(&h, currRing);1039 d = nacLcm(h, napGetCoeff(p), nacRing); 1040 nacDelete(&h,nacRing); 1037 1041 h = d; 1038 1042 napIter(p); … … 1044 1048 { 1045 1049 d=nacMult(h, napGetCoeff(p)); 1046 nacDelete(&napGetCoeff(p), currRing);1050 nacDelete(&napGetCoeff(p),nacRing); 1047 1051 nacNormalize(d); 1048 1052 napGetCoeff(p) = d; 1049 1053 napIter(p); 1050 1054 } 1051 nacDelete(&h, currRing);1055 nacDelete(&h,nacRing); 1052 1056 } 1053 1057 napContent(ph); … … 1065 1069 { 1066 1070 napIter(a); 1067 y = nacGcd(x, napGetCoeff(a), currRing);1068 nacDelete(&x, currRing);1071 y = nacGcd(x, napGetCoeff(a), nacRing); 1072 nacDelete(&x,nacRing); 1069 1073 x = y; 1070 1074 if (nacIsOne(x)) … … 1073 1077 do 1074 1078 { 1075 y = nacGcd(x, napGetCoeff(b), currRing);1076 nacDelete(&x, currRing);1079 y = nacGcd(x, napGetCoeff(b), nacRing); 1080 nacDelete(&x,nacRing); 1077 1081 x = y; 1078 1082 if (nacIsOne(x)) … … 1124 1128 { 1125 1129 napSetExp(g,1, napExp(x, y)); 1130 p_Setm(g,nacRing); 1126 1131 return g; 1127 1132 } … … 1147 1152 napDelete1(&h); 1148 1153 napSetExp(g,1, napExp(a, b)); 1154 p_Setm(g,nacRing); 1149 1155 return g; 1150 1156 } … … 1153 1159 // x = (napoly)omAlloc0(napMonomSize); 1154 1160 #else /* LONGALGNEW */ 1155 // x = (napoly)p_Init( currRing->algring);1161 // x = (napoly)p_Init(nacRing); 1156 1162 #endif /* LONGALGNEW */ 1157 1163 g=a; … … 1162 1168 { 1163 1169 napSetExp(x,i+1, napExpi(i,a,b)); 1170 p_Setm(x,nacRing); 1164 1171 } 1165 1172 return x; … … 1178 1185 while (b!=NULL) 1179 1186 { 1180 d = nacLcm(h, napGetCoeff(b), currRing);1181 nacDelete(&h, currRing);1187 d = nacLcm(h, napGetCoeff(b), nacRing); 1188 nacDelete(&h,nacRing); 1182 1189 h = d; 1183 1190 napIter(b); … … 1229 1236 napoly h = (napoly)omAlloc0(napMonomSize); 1230 1237 #else /* LONGALGNEW */ 1231 napoly h = (napoly)p_Init( currRing->algring);1238 napoly h = (napoly)p_Init(nacRing); 1232 1239 #endif /* LONGALGNEW */ 1233 1240 int i=0,j; … … 1241 1248 for (j=naNumbOfPar; j>0; j--) 1242 1249 napSetExp(h,j, napGetExp(q,j) - napGetExp(naI->liste[i],j)); 1250 p_Setm(h,nacRing); 1243 1251 h = napMult (h, napCopy(naI->liste[i])); 1244 1252 h = napNeg (h); … … 1330 1338 l->z = napInit(1); 1331 1339 napSetExp(l->z,i,1); 1340 p_Setm(l->z,nacRing); 1332 1341 l->n = NULL; 1333 1342 return (number)l; … … 1965 1974 phn->s = 0; 1966 1975 naNormalize(phn); 1967 napWrite(ph->z); 1968 if (ph->n!=NULL) 1976 BOOLEAN has_denom=(ph->n!=NULL); 1977 napWrite(ph->z,has_denom/*(ph->n!=NULL)*/); 1978 if (has_denom/*(ph->n!=NULL)*/) 1969 1979 { 1970 1980 StringAppendS("/"); 1971 napWrite(ph->n );1981 napWrite(ph->n,TRUE); 1972 1982 } 1973 1983 } … … 2003 2013 if (!nacIsZero(t)) 2004 2014 { 2005 nacDelete(&t, currRing);2015 nacDelete(&t,nacRing); 2006 2016 return FALSE; 2007 2017 } 2008 2018 else 2009 nacDelete(&t, currRing);2019 nacDelete(&t,nacRing); 2010 2020 } 2011 2021 napIter(x); … … 2158 2168 napMultN(x,n); 2159 2169 napMultN(y,n); 2160 nacDelete(&n, currRing);2170 nacDelete(&n,nacRing); 2161 2171 while(x!=NULL) 2162 2172 { … … 2207 2217 nacNormalize(h1); 2208 2218 napMultN(x, h1); 2209 nacDelete(&h1, currRing);2219 nacDelete(&h1,nacRing); 2210 2220 napDelete1(&y); 2211 2221 p->n = NULL; … … 2254 2264 napMultN(x,n); 2255 2265 napMultN(y,n); 2256 nacDelete(&n, currRing);2266 nacDelete(&n,nacRing); 2257 2267 while(x!=NULL) 2258 2268 { … … 2311 2321 while (x!=NULL) 2312 2322 { 2313 number d=nacGcd(g,napGetCoeff(x), currRing);2323 number d=nacGcd(g,napGetCoeff(x), nacRing); 2314 2324 if(nacIsOne(d)) 2315 2325 { 2316 nacDelete(&g, currRing);2317 nacDelete(&d, currRing);2326 nacDelete(&g,nacRing); 2327 nacDelete(&d,nacRing); 2318 2328 naTest(pp); 2319 2329 return; 2320 2330 } 2321 nacDelete(&g, currRing);2331 nacDelete(&g,nacRing); 2322 2332 g = d; 2323 2333 napIter(x); … … 2325 2335 while (y!=NULL) 2326 2336 { 2327 number d=nacGcd(g,napGetCoeff(y), currRing);2337 number d=nacGcd(g,napGetCoeff(y), nacRing); 2328 2338 if(nacIsOne(d)) 2329 2339 { 2330 nacDelete(&g, currRing);2331 nacDelete(&d, currRing);2340 nacDelete(&g,nacRing); 2341 nacDelete(&d,nacRing); 2332 2342 naTest(pp); 2333 2343 return; 2334 2344 } 2335 nacDelete(&g, currRing);2345 nacDelete(&g,nacRing); 2336 2346 g = d; 2337 2347 napIter(y); … … 2351 2361 napIter(y); 2352 2362 } 2353 nacDelete(&g, currRing);2363 nacDelete(&g,nacRing); 2354 2364 naTest(pp); 2355 2365 } … … 2381 2391 while (xx!=NULL) 2382 2392 { 2383 bt = nacGcd(t, napGetCoeff(xx), currRing);2393 bt = nacGcd(t, napGetCoeff(xx), nacRing); 2384 2394 r = nacMult(t, napGetCoeff(xx)); 2385 nacDelete(&napGetCoeff(xx), currRing);2395 nacDelete(&napGetCoeff(xx),nacRing); 2386 2396 napGetCoeff(xx) = nacDiv(r, bt); 2387 2397 nacNormalize(napGetCoeff(xx)); 2388 nacDelete(&bt, currRing);2389 nacDelete(&r, currRing);2398 nacDelete(&bt,nacRing); 2399 nacDelete(&r,nacRing); 2390 2400 napIter(xx); 2391 2401 } 2392 2402 } 2393 nacDelete(&t, currRing);2403 nacDelete(&t,nacRing); 2394 2404 result->z = x; 2395 2405 #ifdef HAVE_FACTORY … … 2439 2449 { 2440 2450 x=naI->liste[i]; 2451 nacNormalize(napGetCoeff(x)); 2441 2452 a=nacCopy(napGetCoeff(x)); 2442 a=nacDiv(nacInit(1),a); 2443 napMultN(x,a); 2444 nacDelete(&a,currRing); 2453 number aa=nacInvers(a); 2454 nacDelete(&a,nacRing); 2455 napMultN(x,aa); 2456 nacDelete(&aa,nacRing); 2445 2457 } 2446 2458 } … … 2459 2471 l->z=(napoly)omAlloc0(napMonomSize); 2460 2472 #else /* LONGALGNEW */ 2461 l->z=(napoly)p_Init( currRing->algring);2473 l->z=(napoly)p_Init(nacRing); 2462 2474 #endif /* LONGALGNEW */ 2463 2475 int i=(int)c; … … 2479 2491 l->z=(napoly)omAlloc0(napMonomSize); 2480 2492 #else /* LONGALGNEW */ 2481 l->z=(napoly)p_Init( currRing->algring);2493 l->z=(napoly)p_Init(nacRing); 2482 2494 #endif /* LONGALGNEW */ 2483 2495 napGetCoeff(l->z)=nlCopy(c); … … 2497 2509 l->z=(napoly)omAlloc0(napMonomSize); 2498 2510 #else /* LONGALGNEW */ 2499 l->z=(napoly)p_Init( currRing->algring);2511 l->z=(napoly)p_Init(nacRing); 2500 2512 #endif /* LONGALGNEW */ 2501 2513 napGetCoeff(l->z)=c; /* omit npCopy, because npCopy is a no-op */ … … 2519 2531 l->z=(napoly)omAlloc0(napMonomSize); 2520 2532 #else /* LONGALGNEW */ 2521 l->z=(napoly)p_Init( currRing->algring);2533 l->z=(napoly)p_Init(nacRing); 2522 2534 #endif /* LONGALGNEW */ 2523 2535 napGetCoeff(l->z)=n; … … 2539 2551 l->z=(napoly)omAlloc0(napMonomSize); 2540 2552 #else /* LONGALGNEW */ 2541 l->z=(napoly)p_Init( currRing->algring);2553 l->z=(napoly)p_Init(nacRing); 2542 2554 #endif /* LONGALGNEW */ 2543 2555 napGetCoeff(l->z)=n; … … 2558 2570 #ifndef LONGALGNEW 2559 2571 a = w = (napoly)omAlloc0(napMonomSize); 2560 memcpy (a->e, p->e, naParsToCopy * SIZEOF_PARAMETER);2572 memcpy4(a->e, p->e, naParsToCopy * SIZEOF_PARAMETER); 2561 2573 w->ko = nacMap(p->ko); 2562 2574 #else /* LONGALGNEW */ 2563 a = w = (napoly)p_Init( currRing->algring);2575 a = w = (napoly)p_Init(nacRing); 2564 2576 int i; 2565 2577 for(i=1;i<=naParsToCopy;i++) 2566 2578 napSetExp(a,i,napGetExpFrom(p,i,napMapRing)); 2579 p_Setm(a,nacRing); 2567 2580 napGetCoeff(w) = nacMap(napGetCoeff(p)); 2568 2581 #endif /* LONGALGNEW */ … … 2574 2587 a->ne = (napoly)omAlloc0(napMonomSize); 2575 2588 a = a->ne; 2576 memcpy (a->e, p->e, naParsToCopy * SIZEOF_PARAMETER);2577 #else /* LONGALGNEW */ 2578 napNext(a) = (napoly)p_Init( currRing->algring);2589 memcpy4(a->e, p->e, naParsToCopy * SIZEOF_PARAMETER); 2590 #else /* LONGALGNEW */ 2591 napNext(a) = (napoly)p_Init(nacRing); 2579 2592 napIter(a); 2580 2593 for(i=1;i<=naParsToCopy;i++) 2581 2594 napSetExp(a,i,napGetExpFrom(p,i,napMapRing)); 2595 p_Setm(a,nacRing); 2582 2596 #endif /* LONGALGNEW */ 2583 2597 napGetCoeff(a) = nacMap(napGetCoeff(p)); … … 2716 2730 nMapFunc nMap=NULL; 2717 2731 if (currRing->parameter!=NULL) 2718 nMap=currRing->algring->cf->cfSetMap(r->algring, currRing->algring);2732 nMap=currRing->algring->cf->cfSetMap(r->algring, nacRing); 2719 2733 else 2720 2734 nMap=currRing->cf->cfSetMap(r->algring, currRing); … … 2749 2763 { 2750 2764 if ((rPar(currRing)>=i) && (pa!=NULL)) 2765 { 2751 2766 napSetExp(pa,i+1,napGetExpFrom(za,i+1,r)); 2767 p_Setm(pa,nacRing); 2768 } 2752 2769 else 2753 2770 { … … 2759 2776 pSetExp(p,par_perm[i],napGetExpFrom(za,i+1,r)); 2760 2777 else if((par_perm[i]<0)&&(pa!=NULL)) 2778 { 2761 2779 napSetExp(pa,-par_perm[i], napGetExpFrom(za,i+1,r)); 2780 p_Setm(pa,nacRing); 2781 } 2762 2782 else 2763 2783 {
Note: See TracChangeset
for help on using the changeset viewer.