Changeset eca69d in git
- Timestamp:
- Jun 19, 2012, 6:30:43 PM (11 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'ad2543eab51733612ba7d118afc77edca719600e')
- Children:
- 3ef0a0f54ff30379dd02f696dfdf144d6b523cfb
- Parents:
- 53273d8bcb24900118b9a5adfd3b2e5353f82175
- git-author:
- Martin Lee <martinlee84@web.de>2012-06-19 18:30:43+02:00
- git-committer:
- Martin Lee <martinlee84@web.de>2012-07-31 11:49:17+02:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/facFqBivar.cc
r53273d reca69d 4404 4404 CanonicalForm& bufF, CFList& factors, int& l, 4405 4405 int& factorsFound, bool beenInThres, CFMatrix& M, 4406 CFArray& Pi, CFList& diophant 4406 CFArray& Pi, CFList& diophant, bool symmetric, 4407 const CanonicalForm& evaluation 4407 4408 ) 4408 4409 { … … 4481 4482 henselLiftResume12 (F, factors, l, dummy, Pi, diophant, M); 4482 4483 l= dummy; 4484 if (i == 1 && degree (F)%4==0 && symmetric && factors.length() == 2 && 4485 LC (F,1).inCoeffDomain() && 4486 (degree (factors.getFirst(), 1) == degree (factors.getLast(),1))) 4487 { 4488 Variable x= Variable (1); 4489 CanonicalForm g, h, gg, hh, multiplier1, multiplier2, check1, check2; 4490 int m= degree (F)/4+1; 4491 g= factors.getFirst(); 4492 h= factors.getLast(); 4493 g= mod (g, power (y,m)); 4494 h= mod (h, power (y,m)); 4495 g= g (y-evaluation, y); 4496 h= h (y-evaluation, y); 4497 gg= mod (swapvar (g,x,y),power (x,m)); 4498 gg= gg (y + evaluation, y); 4499 multiplier1= factors.getLast()[m-1][0]/gg[m-1][0]; 4500 gg= div (gg, power (y,m)); 4501 gg= gg*power (y,m); 4502 hh= mod (swapvar (h,x,y),power (x,m)); 4503 hh= hh (y + evaluation, y); 4504 multiplier2= factors.getFirst()[m-1][0]/hh[m-1][0]; 4505 hh= div (hh, power (y,m)); 4506 hh= hh*power (y,m); 4507 gg= multiplier1*gg+mod (factors.getLast(), power (y,m)); 4508 hh= multiplier2*hh+mod (factors.getFirst(), power (y,m)); 4509 check1= gg (y-evaluation,y); 4510 check2= hh (y-evaluation,y); 4511 check1= swapvar (check1, x, y); 4512 if (check1/Lc (check1) == check2/Lc (check2)) 4513 { 4514 result.append (gg); 4515 result.append (hh); 4516 delete [] liftPre; 4517 delete [] factorsFoundIndex; 4518 return result; 4519 } 4520 } 4483 4521 } 4484 4522 else … … 5057 5095 result= earlyReconstructionAndLifting (F, NTLNe, bufF, bufUniFactors, l, 5058 5096 factorsFound, beenInThres, M, Pi, 5059 diophant 5097 diophant, symmetric, evaluation 5060 5098 ); 5061 5099
Note: See TracChangeset
for help on using the changeset viewer.