Changeset 042111 in git for kernel/polys1.cc
- Timestamp:
- Aug 17, 2005, 3:54:56 PM (19 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- ec7d7419da114fca1ac19c6e32f337aea021277a
- Parents:
- 2c477e6cc69ee9025c77b5218d60f1a042b18d7a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/polys1.cc
r2c477e6 r042111 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: polys1.cc,v 1.1 3 2005-04-18 14:50:56 Singular Exp $ */4 /* $Id: polys1.cc,v 1.14 2005-08-17 13:54:36 Singular Exp $ */ 5 5 6 6 /* … … 495 495 nNormalize(pGetCoeff(ph)); 496 496 if(!nGreaterZero(pGetCoeff(ph))) ph = pNeg(ph); 497 if (rField_is_Q_a()) 498 { 499 h = nlInit(1); 500 p=ph; 501 while (p!=NULL) 502 { // each monom: coeff in Q_a 503 lnumber c_n_n=(lnumber)pGetCoeff(p); 504 napoly c_n=c_n_n->z; 505 while (c_n!=NULL) 506 { // each monom: coeff in Q 507 d=nlLcm(h,pGetCoeff(c_n),currRing->algring); 508 n_Delete(&h,currRing->algring); 509 h=d; 510 pIter(c_n); 511 } 512 pIter(p); 513 } 514 /* contains the 1/lcm of all denominators in c_n_n->z*/ 515 number hz=h; 516 h = nlInit(1); 517 p=ph; 518 while (p!=NULL) 519 { // each monom: coeff in Q_a 520 lnumber c_n_n=(lnumber)pGetCoeff(p); 521 napoly c_n=c_n_n->n; 522 while (c_n!=NULL) 523 { // each monom: coeff in Q 524 d=nlLcm(h,pGetCoeff(c_n),currRing->algring); 525 n_Delete(&h,currRing->algring); 526 h=d; 527 pIter(c_n); 528 } 529 pIter(p); 530 } 531 /* contains the 1/lcm of all denominators in c_n_n->n*/ 532 number htmp=nlInvers(h); 533 number hztmp=nlInvers(hz); 534 number hh=nlMult(hz,h); 535 nlDelete(&hz,currRing->algring); 536 nlDelete(&h,currRing->algring); 537 number hg=nlGcd(hztmp,htmp,currRing->algring); 538 nlDelete(&hztmp,currRing->algring); 539 nlDelete(&htmp,currRing->algring); 540 h=nlMult(hh,hg); 541 nlDelete(&hg,currRing->algring); 542 nlDelete(&hh,currRing->algring); 543 if(!nlIsOne(h)) 544 { 545 p=ph; 546 while (p!=NULL) 547 { // each monom: coeff in Q_a 548 lnumber c_n_n=(lnumber)pGetCoeff(p); 549 napoly c_n=c_n_n->z; 550 while (c_n!=NULL) 551 { // each monom: coeff in Q 552 d=nlMult(h,pGetCoeff(c_n)); 553 nlNormalize(d); 554 nlDelete(&pGetCoeff(c_n),currRing->algring); 555 pGetCoeff(c_n)=d; 556 pIter(c_n); 557 } 558 pIter(p); 559 } 560 p=ph; 561 while (p!=NULL) 562 { // each monom: coeff in Q_a 563 lnumber c_n_n=(lnumber)pGetCoeff(p); 564 napoly c_n=c_n_n->n; 565 while (c_n!=NULL) 566 { // each monom: coeff in Q 567 d=nlMult(h,pGetCoeff(c_n)); 568 nlNormalize(d); 569 nlDelete(&pGetCoeff(c_n),currRing->algring); 570 pGetCoeff(c_n)=d; 571 pIter(c_n); 572 } 573 pIter(p); 574 } 575 } 576 nlDelete(&h,currRing->algring); 577 } 497 578 if (rField_is_Q()) 498 579 { … … 551 632 } 552 633 #endif 634 if (rField_is_Q_a()) 635 { 636 h = nlInit(1); 637 p=ph; 638 while (p!=NULL) 639 { // each monom: coeff in Q_a 640 lnumber c_n_n=(lnumber)pGetCoeff(p); 641 napoly c_n=c_n_n->z; 642 while (c_n!=NULL) 643 { // each monom: coeff in Q 644 d=nlLcm(h,pGetCoeff(c_n),currRing->algring); 645 n_Delete(&h,currRing->algring); 646 h=d; 647 pIter(c_n); 648 } 649 pIter(p); 650 } 651 /* contains the 1/lcm of all denominators in c_n_n->z*/ 652 number hz=h; 653 h = nlInit(1); 654 p=ph; 655 while (p!=NULL) 656 { // each monom: coeff in Q_a 657 lnumber c_n_n=(lnumber)pGetCoeff(p); 658 napoly c_n=c_n_n->n; 659 while (c_n!=NULL) 660 { // each monom: coeff in Q 661 d=nlLcm(h,pGetCoeff(c_n),currRing->algring); 662 n_Delete(&h,currRing->algring); 663 h=d; 664 pIter(c_n); 665 } 666 pIter(p); 667 } 668 /* contains the 1/lcm of all denominators in c_n_n->n*/ 669 number htmp=nlInvers(h); 670 number hztmp=nlInvers(hz); 671 number hh=nlMult(hz,h); 672 nlDelete(&hz,currRing->algring); 673 nlDelete(&h,currRing->algring); 674 number hg=nlGcd(hztmp,htmp,currRing->algring); 675 nlDelete(&hztmp,currRing->algring); 676 nlDelete(&htmp,currRing->algring); 677 h=nlMult(hh,hg); 678 nlDelete(&hg,currRing->algring); 679 nlDelete(&hh,currRing->algring); 680 if(!nlIsOne(h)) 681 { 682 p=ph; 683 while (p!=NULL) 684 { // each monom: coeff in Q_a 685 lnumber c_n_n=(lnumber)pGetCoeff(p); 686 napoly c_n=c_n_n->z; 687 while (c_n!=NULL) 688 { // each monom: coeff in Q 689 d=nlMult(h,pGetCoeff(c_n)); 690 nlNormalize(d); 691 nlDelete(&pGetCoeff(c_n),currRing->algring); 692 pGetCoeff(c_n)=d; 693 pIter(c_n); 694 } 695 pIter(p); 696 } 697 p=ph; 698 while (p!=NULL) 699 { // each monom: coeff in Q_a 700 lnumber c_n_n=(lnumber)pGetCoeff(p); 701 napoly c_n=c_n_n->n; 702 while (c_n!=NULL) 703 { // each monom: coeff in Q 704 d=nlMult(h,pGetCoeff(c_n)); 705 nlNormalize(d); 706 nlDelete(&pGetCoeff(c_n),currRing->algring); 707 pGetCoeff(c_n)=d; 708 pIter(c_n); 709 } 710 pIter(p); 711 } 712 } 713 nlDelete(&h,currRing->algring); 714 } 553 715 } 554 716 }
Note: See TracChangeset
for help on using the changeset viewer.