Changeset 77f483 in git for factory/fac_multivar.cc
- Timestamp:
- Jun 28, 2005, 4:39:52 PM (18 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- fea91578e32b53237ec9712c2af66d889a3b6241
- Parents:
- 3781a22b49bf6807b4bfa152e670e186f67e6e1a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/fac_multivar.cc
r3781a2 r77f483 1 1 /* emacs edit mode for this file is -*- C++ -*- */ 2 /* $Id: fac_multivar.cc,v 1.1 0 2002-10-24 12:17:49Singular Exp $ */2 /* $Id: fac_multivar.cc,v 1.11 2005-06-28 14:39:52 Singular Exp $ */ 3 3 4 4 #include <config.h> … … 142 142 #ifdef HAVE_NTL 143 143 int prime_number=0; 144 void find_good_prime(const CanonicalForm &f, const CanonicalForm &r,int &start)144 void find_good_prime(const CanonicalForm &f, int &start) 145 145 { 146 146 if (! f.inBaseDomain() ) 147 147 { 148 148 int l = f.level(); 149 for ( CFIterator i = f; i.hasTerms(); i++ ) 149 CFIterator i = f; 150 for(;;) 150 151 { 151 if ((i.exp()!=0) && ((i.exp() % cf_getSmallPrime(start))==0))152 if ( i.hasTerms() ) 152 153 { 153 start++; 154 CanonicalForm ff=r; 155 find_good_prime(ff,r,start); 156 return; 154 find_good_prime(i.coeff(),start); 155 if((i.exp()!=0) && ((i.exp() % cf_getSmallPrime(start))==0)) 156 { 157 start++; 158 i=f; 159 } 160 else i++; 157 161 } 158 find_good_prime(i.coeff(),r,start);162 else break; 159 163 } 160 164 } 161 165 else 162 166 { 163 if (mod(f,cf_getSmallPrime(start))==0)167 if (f.inZ()) 164 168 { 165 start++; 166 CanonicalForm ff=r; 167 find_good_prime(ff,r,start); 168 } 169 while((f!=0) && (mod(f,cf_getSmallPrime(start))==0)) 170 { 171 start++; 172 } 173 } 174 /* should not happen! 175 else if (f.inQ()) 176 { 177 while((f.den()!=0) && (mod(f.den(),cf_getSmallPrime(start))==0)) 178 { 179 start++; 180 } 181 while((f.num()!=0) && (mod(f.num(),cf_getSmallPrime(start))==0)) 182 { 183 start++; 184 } 185 } 186 else 187 cout <<"??"<< f <<"\n"; 188 */ 169 189 } 170 190 } … … 234 254 { 235 255 int i=prime_number; 236 CanonicalForm f=arg; 237 find_good_prime(f,arg,i); 238 f=U0; 239 find_good_prime(f,U0,i); 240 f=U; 241 find_good_prime(f,U,i); 256 find_good_prime(arg,i); 257 find_good_prime(U0,i); 258 find_good_prime(U,i); 242 259 int p=cf_getSmallPrime(i); 243 260 //printf("found:p=%d (%d)\n",p,i);
Note: See TracChangeset
for help on using the changeset viewer.