Changeset 529fa4 in git
- Timestamp:
- May 11, 2011, 7:18:28 PM (12 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '00e2e9c41af3fde1273eb3633f4c0c7c3db2579d')
- Children:
- 6137945778b99e12da0ed42de11464a71e637602
- Parents:
- 686f468cd2868ccd3c847dc0cd0b1417fc7fb0e1
- git-author:
- Hans Schoenemann <hannes@mathematik.uni-kl.de>2011-05-11 19:18:28+02:00
- git-committer:
- Mohamed Barakat <mohamed.barakat@rwth-aachen.de>2011-11-09 12:36:06+01:00
- Location:
- libpolys
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/coeffs/coeffs.h
r686f46 r529fa4 281 281 static inline BOOLEAN n_GreaterZero(number n, const coeffs r) 282 282 { assume(r != NULL); assume(r->cfGreaterZero!=NULL); return r->cfGreaterZero(n,r); } 283 // cfGreater? 283 static inline BOOLEAN n_Greater(number a, number b, const coeffs r) 284 { assume(r != NULL); assume(r->cfGreater!=NULL); return r->cfGreater(a,b,r); } 284 285 285 286 #ifdef HAVE_RINGS -
libpolys/polys/clapsing.cc
r686f46 r529fa4 1356 1356 #endif 1357 1357 #endif 1358 1359 number nChineseRemainder(number *x, number *q,int rl, const coeffs r) 1360 // elemenst in the array are x[0..(rl-1)], q[0..(rl-1)] 1361 { 1362 #ifdef HAVE_FACTORY 1363 if (r->type!=n_Q) 1364 { Werror("nChineseRemainder only for integers"); return NULL; } 1365 setCharacteristic( 0 ); // only in char 0 1366 CFArray X(rl), Q(rl); 1367 int i; 1368 for(i=rl-1;i>=0;i--) 1369 { 1370 X[i]=r->convSingNFactoryN(x[i],FALSE,r); // may be larger MAX_INT 1371 Q[i]=r->convSingNFactoryN(q[i],FALSE,r); // may be larger MAX_INT 1372 } 1373 CanonicalForm xnew,qnew; 1374 chineseRemainder(X,Q,xnew,qnew); 1375 number n=r->convFactoryNSingN(xnew,r); 1376 number p=r->convFactoryNSingN(qnew,r); 1377 number p2=n_IntDiv(p,n_Init(2, r),r); 1378 if (n_Greater(n,p2,r)) 1379 { 1380 number n2=n_Sub(n,p,r); 1381 n_Delete(&n,r); 1382 n=n2; 1383 } 1384 n_Delete(&p,r); 1385 n_Delete(&p2,r); 1386 return n; 1387 #else 1388 WerrorS("not implemented"); 1389 return n_Init(0,r); 1390 #endif 1391 } -
libpolys/polys/clapsing.h
r686f46 r529fa4 62 62 */ 63 63 64 number n lChineseRemainder(number *x, number *q,int rl);64 number nChineseRemainder(number *x, number *q,int rl, const coeffs r); 65 65 66 66 #endif /* INCL_FACTORYSING_H */ -
libpolys/polys/simpleideals.cc
r686f46 r529fa4 24 24 #include "simpleideals.h" 25 25 #include "sbuckets.h" 26 #include "clapsing.h" 26 27 27 28 omBin sip_sideal_bin = omGetSpecBin(sizeof(sip_sideal)); … … 1698 1699 */ 1699 1700 #ifdef HAVE_FACTORY 1700 #if 01701 1701 ideal id_ChineseRemainder(ideal *xx, number *q, int rl, const ring R) 1702 1702 { … … 1736 1736 } 1737 1737 1738 number n=n lChineseRemainder(x,q,rl); // kernel/clapconv.cc1738 number n=nChineseRemainder(x,q,rl, R->cf); 1739 1739 1740 1740 for(j=rl-1;j>=0;j--) … … 1742 1742 x[j]=NULL; // nlInit(0...) takes no memory 1743 1743 } 1744 if (n lIsZero(n, R->cf)) p_Delete(&h, R);1744 if (n_IsZero(n, R->cf)) p_Delete(&h, R); 1745 1745 else 1746 1746 { … … 1757 1757 return result; 1758 1758 } 1759 #endif1760 1759 #endif 1761 1760
Note: See TracChangeset
for help on using the changeset viewer.