Changeset b1d287 in git for factory/facFqBivar.h
- Timestamp:
- Aug 1, 2012, 2:25:24 AM (11 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'ad2543eab51733612ba7d118afc77edca719600e')
- Children:
- 0df59c8a8e59eded04e4aca4e57cfed188a00cf1
- Parents:
- 09afeb85ea17e564813761786f76281c8162dad0362fc6799a207ad61d3be8abe0206e52b5782e50
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/facFqBivar.h
r09afeb rb1d287 8 8 * 9 9 * @author Martin Lee 10 *11 * @internal @version \$Id$12 10 * 13 11 **/ … … 263 261 decompress (contentXFactors, N); 264 262 decompress (contentYFactors, N); 265 CFFList result , resultRoot;263 CFFList result; 266 264 if (F.inCoeffDomain()) 267 265 { … … 274 272 vec_ZZ S; 275 273 F= compress (F, M, S); 276 CanonicalForm pthRoot, A; 277 CanonicalForm sqrfP= sqrfPart (F/Lc(F), pthRoot, info.getAlpha()); 278 CFList buf, bufRoot; 279 int p= getCharacteristic(); 280 int l; 281 if (degree (pthRoot) > 0) 282 { 283 pthRoot= maxpthRoot (pthRoot, p, l); 284 result= FpBiFactorize (pthRoot, false); 285 result.removeFirst(); 286 for (CFFListIterator i= result; i.hasItem(); i++) 287 i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)), 288 i.getItem().exp()*ipower (p,l)); 289 result= Union (result, contentXFactors); 290 result= Union (result, contentYFactors); 291 normalize (result); 292 result.insert (CFFactor (LcF, 1)); 293 return result; 294 } 295 else 296 { 297 buf= biFactorize (sqrfP, info); 298 A= F/LcF; 299 result= multiplicity (A, buf); 300 for (CFFListIterator i= result; i.hasItem(); i++) 301 i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)), 302 i.getItem().exp()); 303 } 304 if (degree (A) > 0) 305 { 306 resultRoot= FpBiFactorize (A, false); 307 resultRoot.removeFirst(); 308 for (CFFListIterator i= resultRoot; i.hasItem(); i++) 309 i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)), 310 i.getItem().exp()); 311 result= Union (result, resultRoot); 312 } 274 275 CFFList sqrf= FpSqrf (F, false); 276 CFList bufResult; 277 sqrf.removeFirst(); 278 CFListIterator i; 279 for (CFFListIterator iter= sqrf; iter.hasItem(); iter++) 280 { 281 bufResult= biFactorize (iter.getItem().factor(), info); 282 for (i= bufResult; i.hasItem(); i++) 283 result.append (CFFactor (N (decompress (i.getItem(), M, S)), 284 iter.getItem().exp())); 285 } 286 313 287 result= Union (result, contentXFactors); 314 288 result= Union (result, contentYFactors); … … 388 362 decompress (contentXFactors, N); 389 363 decompress (contentYFactors, N); 390 CFFList result , resultRoot;364 CFFList result; 391 365 if (F.inCoeffDomain()) 392 366 { … … 399 373 vec_ZZ S; 400 374 F= compress (F, M, S); 401 CanonicalForm pthRoot, A, tmp; 402 CanonicalForm sqrfP= sqrfPart (F/Lc(F), pthRoot, alpha); 403 CFList buf, bufRoot; 404 int p= getCharacteristic(); 405 int q= ipower (p, degree (getMipo (alpha))); 406 int l; 407 if (degree (pthRoot) > 0) 408 { 409 pthRoot= maxpthRoot (pthRoot, q, l); 410 result= FqBiFactorize (pthRoot, alpha, false); 411 result.removeFirst(); 412 for (CFFListIterator i= result; i.hasItem(); i++) 413 i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)), 414 i.getItem().exp()*ipower (p,l)); 415 result= Union (result, contentXFactors); 416 result= Union (result, contentYFactors); 417 normalize (result); 418 result.insert (CFFactor (LcF, 1)); 419 return result; 420 } 421 else 422 { 423 buf= biFactorize (sqrfP, info); 424 A= F/LcF; 425 result= multiplicity (A, buf); 426 for (CFFListIterator i= result; i.hasItem(); i++) 427 i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)), 428 i.getItem().exp()); 429 } 430 if (degree (A) > 0) 431 { 432 resultRoot= FqBiFactorize (A, alpha, false); 433 resultRoot.removeFirst(); 434 for (CFFListIterator i= resultRoot; i.hasItem(); i++) 435 i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)), 436 i.getItem().exp()); 437 result= Union (result, resultRoot); 438 } 375 376 CFFList sqrf= FqSqrf (F, alpha, false); 377 CFList bufResult; 378 sqrf.removeFirst(); 379 CFListIterator i; 380 for (CFFListIterator iter= sqrf; iter.hasItem(); iter++) 381 { 382 bufResult= biFactorize (iter.getItem().factor(), info); 383 for (i= bufResult; i.hasItem(); i++) 384 result.append (CFFactor (N (decompress (i.getItem(), M, S)), 385 iter.getItem().exp())); 386 } 387 439 388 result= Union (result, contentXFactors); 440 389 result= Union (result, contentYFactors); … … 515 464 decompress (contentXFactors, N); 516 465 decompress (contentYFactors, N); 517 CFFList result , resultRoot;466 CFFList result; 518 467 if (F.inCoeffDomain()) 519 468 { … … 526 475 vec_ZZ S; 527 476 F= compress (F, M, S); 528 CanonicalForm pthRoot, A; 529 CanonicalForm sqrfP= sqrfPart (F/LcF, pthRoot, info.getAlpha()); 530 CFList buf; 531 int p= getCharacteristic(); 532 int q= ipower (p, getGFDegree()); 533 int l; 534 if (degree (pthRoot) > 0) 535 { 536 pthRoot= maxpthRoot (pthRoot, q, l); 537 result= GFBiFactorize (pthRoot, false); 538 result.removeFirst(); 539 for (CFFListIterator i= result; i.hasItem(); i++) 540 i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)), 541 i.getItem().exp()*ipower (p,l)); 542 result= Union (result, contentXFactors); 543 result= Union (result, contentYFactors); 544 normalize (result); 545 result.insert (CFFactor (LcF, 1)); 546 return result; 547 } 548 else 549 { 550 buf= biFactorize (sqrfP, info); 551 A= F/LcF; 552 result= multiplicity (A, buf); 553 for (CFFListIterator i= result; i.hasItem(); i++) 554 i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)), 555 i.getItem().exp()); 556 } 557 if (degree (A) > 0) 558 { 559 resultRoot= GFBiFactorize (A, false); 560 resultRoot.removeFirst(); 561 for (CFFListIterator i= resultRoot; i.hasItem(); i++) 562 i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)), 563 i.getItem().exp()); 564 result= Union (result, resultRoot); 565 } 477 478 CFFList sqrf= GFSqrf (F, false); 479 CFList bufResult; 480 sqrf.removeFirst(); 481 CFListIterator i; 482 for (CFFListIterator iter= sqrf; iter.hasItem(); iter++) 483 { 484 bufResult= biFactorize (iter.getItem().factor(), info); 485 for (i= bufResult; i.hasItem(); i++) 486 result.append (CFFactor (N (decompress (i.getItem(), M, S)), 487 iter.getItem().exp())); 488 } 489 566 490 result= Union (result, contentXFactors); 567 491 result= Union (result, contentYFactors);
Note: See TracChangeset
for help on using the changeset viewer.