- Timestamp:
- Dec 2, 2016, 1:23:40 PM (7 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- fe25daf21a9ab3493a097c012583fa47485393df
- Parents:
- b0c4944a4b9999bd38a271be9f2c1b1821edeb44
- Location:
- libpolys/coeffs
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/coeffs/longrat.cc
rb0c494 r8887b4 73 73 74 74 void nlCoeffWrite(const coeffs r, BOOLEAN details); 75 number nlChineseRemainder(number *x, number *q,int rl, const coeffs C);76 75 number nlFarey(number nN, number nP, const coeffs CF); 77 76 … … 2942 2941 { 2943 2942 number p=CF->convFactoryNSingN(qnew,CF); 2944 number p2=nlIntDiv(p,nlInit(2, CF),CF); 2945 if (nlGreater(n,p2,CF)) 2946 { 2947 number n2=nlSub(n,p,CF); 2948 nlDelete(&n,CF); 2943 number p2; 2944 if (getCoeffType(CF) == n_Q) p2=nlIntDiv(p,nlInit(2, CF),CF); 2945 else p2=CF->cfDiv(p,CF->cfInit(2, CF),CF); 2946 if (CF->cfGreater(n,p2,CF)) 2947 { 2948 number n2=CF->cfSub(n,p,CF); 2949 CF->cfDelete(&n,CF); 2949 2950 n=n2; 2950 2951 } 2951 nlDelete(&p2,CF);2952 nlDelete(&p,CF);2953 } 2954 nlNormalize(n,CF);2952 CF->cfDelete(&p2,CF); 2953 CF->cfDelete(&p,CF); 2954 } 2955 CF->cfNormalize(n,CF); 2955 2956 return n; 2956 2957 } 2957 number nlChineseRemainder(number *x, number *q,int rl, const coeffs C) 2958 #if 0 2959 number nlChineseRemainder(number *x, number *q,int rl, const coeffs C) 2958 2960 { 2959 2961 CFArray inv(rl); 2960 2962 return nlChineseRemainderSym(x,q,rl,TRUE,inv,C); 2961 2963 } 2964 #endif 2962 2965 2963 2966 static void nlClearContent(ICoeffsEnumerator& numberCollectionEnumerator, number& c, const coeffs cf) -
libpolys/coeffs/longrat.h
rb0c494 r8887b4 131 131 number nlMapGMP(number from, const coeffs src, const coeffs dst); 132 132 # endif 133 // for ring similiar to Q/Z (char 0 required): 134 number nlChineseRemainderSym(number *x, number *q,int rl, BOOLEAN sym, CFArray &inv_cache,const coeffs CF); 135 133 136 134 137 #endif
Note: See TracChangeset
for help on using the changeset viewer.