Changeset 06abb07 in git for libpolys/polys
- Timestamp:
- Sep 19, 2016, 2:23:44 PM (8 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '38dfc5131670d387a89455159ed1e071997eec94')
- Children:
- 59dca7d44c6d942796166db1c0ac9621d2a5ee39
- Parents:
- c4ead28a352d5f3846b80a454f239a0ef2b5af5a
- Location:
- libpolys/polys
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/polys/monomials/p_polys.cc
rc4ead28 r06abb07 124 124 } 125 125 else 126 x[j]=n_Init(0, R );126 x[j]=n_Init(0, R->cf); 127 127 } 128 128 number n=n_ChineseRemainderSym(x,q,rl,TRUE,inv_cache,R->cf); … … 131 131 x[j]=NULL; // n_Init(0...) takes no memory 132 132 } 133 if (n_IsZero(n,R )) p_Delete(&h,R);133 if (n_IsZero(n,R->cf)) p_Delete(&h,R); 134 134 else 135 135 { … … 2541 2541 } 2542 2542 else 2543 s=n_Size(d,r );2543 s=n_Size(d,r->cf); 2544 2544 number d2=d; 2545 2545 loop … … 2571 2571 else 2572 2572 { 2573 int ns=n_Size(pGetCoeff(ph),r );2573 int ns=n_Size(pGetCoeff(ph),r->cf); 2574 2574 if (ns<=3) 2575 2575 { … … 4399 4399 if (rField_is_Ring(r)) 4400 4400 { 4401 if (!n_DivBy(p _GetCoeff(p1, r), p_GetCoeff(p2, r), r)) return FALSE;4401 if (!n_DivBy(pGetCoeff(p1), pGetCoeff(p2), r->cf)) return FALSE; 4402 4402 } 4403 4403 #endif 4404 n=n_Div(p _GetCoeff(p1,r),p_GetCoeff(p2,r),r);4404 n=n_Div(pGetCoeff(p1),pGetCoeff(p2),r->cf); 4405 4405 while ((p1 != NULL) /*&& (p2 != NULL)*/) 4406 4406 { 4407 4407 if ( ! p_LmEqual(p1, p2,r)) 4408 4408 { 4409 n_Delete(&n, r );4409 n_Delete(&n, r->cf); 4410 4410 return FALSE; 4411 4411 } 4412 if (!n_Equal(p _GetCoeff(p1, r), nn = n_Mult(p_GetCoeff(p2, r),n, r->cf), r->cf))4413 { 4414 n_Delete(&n, r );4415 n_Delete(&nn, r );4412 if (!n_Equal(pGetCoeff(p1), nn = n_Mult(pGetCoeff(p2),n, r->cf), r->cf)) 4413 { 4414 n_Delete(&n, r->cf); 4415 n_Delete(&nn, r->cf); 4416 4416 return FALSE; 4417 4417 } 4418 n_Delete(&nn, r );4418 n_Delete(&nn, r->cf); 4419 4419 pIter(p1); 4420 4420 pIter(p2); 4421 4421 } 4422 n_Delete(&n, r );4422 n_Delete(&n, r->cf); 4423 4423 return TRUE; 4424 4424 } -
libpolys/polys/nc/ncSAFormula.cc
rc4ead28 r06abb07 117 117 const number q = p_GetCoeff(GetC(r, i, j), r); 118 118 119 if( !n_IsOne(q, r ) )119 if( !n_IsOne(q, r->cf) ) 120 120 return FALSE; 121 121 } … … 146 146 147 147 const poly c = GetC(r, i, j); 148 const number q = p _GetCoeff(c, r);148 const number q = pGetCoeff(c); 149 149 const poly d = GetD(r, i, j); 150 150 … … 159 159 { 160 160 161 if( n_IsOne(q, r ) ) // commutative161 if( n_IsOne(q, r->cf) ) // commutative 162 162 return _ncSA_1xy0x0y0; 163 163 164 if( n_IsMOne(q, r ) ) // anti-commutative164 if( n_IsMOne(q, r->cf) ) // anti-commutative 165 165 return _ncSA_Mxy0x0y0; 166 166 … … 168 168 } else 169 169 { 170 if( n_IsOne(q, r ) ) // "Lie" case170 if( n_IsOne(q, r->cf) ) // "Lie" case 171 171 { 172 172 if( pNext(d) == NULL ) // Our Main Special Case: d is only a term! … … 194 194 if (AreCommutingVariables(r, k, i/*, &qi*/) && AreCommutingVariables(r, k, j/*, &qj*/) ) // [x, t] = [Dx, t] = 0? 195 195 { 196 const number g = p _GetCoeff(d, r);197 198 if (n_IsOne(g, r ))196 const number g = pGetCoeff(d); 197 198 if (n_IsOne(g, r->cf)) 199 199 return _ncSA_1xy0x0yT2; // save k!?, G = LC(d) == qi == qj == 1!!! 200 200 } … … 306 306 min = n; 307 307 max = m; 308 } else 308 } 309 else 309 310 { 310 311 min = m; … … 315 316 316 317 if( max == 1 ) 317 qN = n_Copy(m_q, r );318 qN = n_Copy(m_q, r->cf); 318 319 else 319 320 { 320 321 number t; 321 n_Power(m_q, max, &t, r );322 n_Power(m_q, max, &t, r->cf); 322 323 323 324 if( min > 1 ) 324 325 { 325 n_Power(t, min, &qN, r );326 n_Delete(&t, r );326 n_Power(t, min, &qN, r->cf); 327 n_Delete(&t, r->cf); 327 328 } 328 329 else … … 346 347 #if OUTPUT 347 348 Print("ncSA_1xy0x0yG(var(%d)^{%d}, var(%d)^{%d}, G, r)!\n", j, m, i, n); 348 number t = n_Copy(m_g, r );349 PrintS("Parameter G: "); n_Write(t, r );350 n_Delete(&t, r );349 number t = n_Copy(m_g, r->cf); 350 PrintS("Parameter G: "); n_Write(t, r->cf); 351 n_Delete(&t, r->cf); 351 352 #endif 352 353 … … 354 355 int km = m; 355 356 356 number c = n_Init(1, r );357 number c = n_Init(1, r->cf); 357 358 358 359 poly p = p_One( r); … … 373 374 for(; k < min; k++ ) 374 375 { 375 number t = n_Init(km + 1, r );376 n_InpMult(t, m_g, r ); // t = ((m - k) + 1) * gamma377 n_InpMult(c, t, r ); // c = c'* ((m - k) + 1) * gamma378 n_Delete(&t, r );379 380 t = n_Init(kn + 1, r );381 n_InpMult(c, t, r ); // c = (c'* ((m - k) + 1) * gamma) * ((n - k) + 1)382 n_Delete(&t, r );383 384 t = n_Init(k, r );385 c = n_Div(c, t, r );386 n_Delete(&t, r );387 388 // n_Normalize(c, r );389 390 t = n_Copy(c, r ); // not the last!376 number t = n_Init(km + 1, r->cf); 377 n_InpMult(t, m_g, r->cf); // t = ((m - k) + 1) * gamma 378 n_InpMult(c, t, r->cf); // c = c'* ((m - k) + 1) * gamma 379 n_Delete(&t, r->cf); 380 381 t = n_Init(kn + 1, r->cf); 382 n_InpMult(c, t, r->cf); // c = (c'* ((m - k) + 1) * gamma) * ((n - k) + 1) 383 n_Delete(&t, r->cf); 384 385 t = n_Init(k, r->cf); 386 c = n_Div(c, t, r->cf); 387 n_Delete(&t, r->cf); 388 389 // n_Normalize(c, r->cf); 390 391 t = n_Copy(c, r->cf); // not the last! 391 392 392 393 p = p_NSet(t, r); … … 405 406 406 407 { 407 n_InpMult(c, m_g, r ); // c = c'* gamma408 n_InpMult(c, m_g, r->cf); // c = c'* gamma 408 409 409 410 if( km > 0 ) 410 411 { 411 number t = n_Init(km + 1, r );412 n_InpMult(c, t, r ); // c = (c'* gamma) * (m - k + 1)413 n_Delete(&t, r );412 number t = n_Init(km + 1, r->cf); 413 n_InpMult(c, t, r->cf); // c = (c'* gamma) * (m - k + 1) 414 n_Delete(&t, r->cf); 414 415 } 415 416 416 417 if( kn > 0 ) 417 418 { 418 number t = n_Init(kn + 1, r );419 n_InpMult(c, t, r ); // c = (c'* gamma) * (n - k + 1)420 n_Delete(&t, r );419 number t = n_Init(kn + 1, r->cf); 420 n_InpMult(c, t, r->cf); // c = (c'* gamma) * (n - k + 1) 421 n_Delete(&t, r->cf); 421 422 } 422 423 423 number t = n_Init(k, r ); // c = ((c'* gamma) * ((n - k + 1) * (m - k + 1))) / k;424 c = n_Div(c, t, r );425 n_Delete(&t, r );424 number t = n_Init(k, r->cf); // c = ((c'* gamma) * ((n - k + 1) * (m - k + 1))) / k; 425 c = n_Div(c, t, r->cf); 426 n_Delete(&t, r->cf); 426 427 } 427 428 … … 451 452 452 453 // k == 0! 453 number c = n_Init(1, r );454 number c = n_Init(1, r->cf); 454 455 455 456 poly p = p_One( r ); … … 471 472 for(; k < min; k++ ) 472 473 { 473 number t = n_Init(km + 1, r );474 // n_InpMult(t, m_g, r ); // t = ((m - k) + 1) * gamma475 n_InpMult(c, t, r ); // c = c'* ((m - k) + 1) * gamma476 n_Delete(&t, r );477 478 t = n_Init(kn + 1, r );479 n_InpMult(c, t, r ); // c = (c'* ((m - k) + 1) * gamma) * ((n - k) + 1)480 n_Delete(&t, r );481 482 t = n_Init(k, r );483 c = n_Div(c, t, r );484 n_Delete(&t, r );474 number t = n_Init(km + 1, r->cf); 475 // n_InpMult(t, m_g, r->cf); // t = ((m - k) + 1) * gamma 476 n_InpMult(c, t, r->cf); // c = c'* ((m - k) + 1) * gamma 477 n_Delete(&t, r->cf); 478 479 t = n_Init(kn + 1, r->cf); 480 n_InpMult(c, t, r->cf); // c = (c'* ((m - k) + 1) * gamma) * ((n - k) + 1) 481 n_Delete(&t, r->cf); 482 483 t = n_Init(k, r->cf); 484 c = n_Div(c, t, r->cf); 485 n_Delete(&t, r->cf); 485 486 486 487 // // n_Normalize(c, r); 487 488 488 t = n_Copy(c, r ); // not the last!489 t = n_Copy(c, r->cf); // not the last! 489 490 490 491 p = p_NSet(t, r); … … 509 510 if( km > 0 ) 510 511 { 511 number t = n_Init(km + 1, r );512 n_InpMult(c, t, r ); // c = (c'* gamma) * (m - k + 1)513 n_Delete(&t, r );512 number t = n_Init(km + 1, r->cf); 513 n_InpMult(c, t, r->cf); // c = (c'* gamma) * (m - k + 1) 514 n_Delete(&t, r->cf); 514 515 } 515 516 516 517 if( kn > 0 ) 517 518 { 518 number t = n_Init(kn + 1, r );519 n_InpMult(c, t, r ); // c = (c'* gamma) * (n - k + 1)520 n_Delete(&t, r );519 number t = n_Init(kn + 1, r->cf); 520 n_InpMult(c, t, r->cf); // c = (c'* gamma) * (n - k + 1) 521 n_Delete(&t, r->cf); 521 522 } 522 523 523 number t = n_Init(k, r ); // c = ((c'* gamma) * ((n - k + 1) * (m - k + 1))) / k;524 c = n_Div(c, t, r );525 n_Delete(&t, r );524 number t = n_Init(k, r->cf); // c = ((c'* gamma) * ((n - k + 1) * (m - k + 1))) / k; 525 c = n_Div(c, t, r->cf); 526 n_Delete(&t, r->cf); 526 527 } 527 528 … … 552 553 int k = m; // to 0 553 554 554 number c = n_Init(1, r ); // k = m, C_k = 1555 number c = n_Init(1, r->cf); // k = m, C_k = 1 555 556 poly p = p_One( r); 556 557 … … 564 565 poly pLast = p; 565 566 566 number nn = n_Init(n, r ); // number(n)!567 n_InpMult(nn, m_shiftCoef, r ); // nn = (alpha*n)567 number nn = n_Init(n, r->cf); // number(n)! 568 n_InpMult(nn, m_shiftCoef, r->cf); // nn = (alpha*n) 568 569 569 570 --k; … … 573 574 for(; k > 0; k-- ) 574 575 { 575 number t = n_Init(k + 1, r ); // t = k+1576 n_InpMult(c, t, r ); // c = c' * (k+1)577 n_InpMult(c, nn, r ); // c = (c' * (k+1)) * (alpha * n)578 579 n_Delete(&t, r );580 t = n_Init(mk++, r );581 c = n_Div(c, t, r ); // c = ((c' * (k+1)) * (alpha * n)) / (m-k);582 n_Delete(&t, r );583 584 // n_Normalize(c, r );585 586 t = n_Copy(c, r ); // not the last!576 number t = n_Init(k + 1, r->cf); // t = k+1 577 n_InpMult(c, t, r->cf); // c = c' * (k+1) 578 n_InpMult(c, nn, r->cf); // c = (c' * (k+1)) * (alpha * n) 579 580 n_Delete(&t, r->cf); 581 t = n_Init(mk++, r->cf); 582 c = n_Div(c, t, r->cf); // c = ((c' * (k+1)) * (alpha * n)) / (m-k); 583 n_Delete(&t, r->cf); 584 585 // n_Normalize(c, r->cf); 586 587 t = n_Copy(c, r->cf); // not the last! 587 588 588 589 p = p_NSet(t, r); … … 600 601 601 602 { 602 n_InpMult(c, nn, r ); // c = (c' * (0+1)) * (alpha * n)603 604 number t = n_Init(m, r );605 c = n_Div(c, t, r ); // c = ((c' * (0+1)) * (alpha * n)) / (m-0);606 n_Delete(&t, r );607 } 608 609 n_Delete(&nn, r );603 n_InpMult(c, nn, r->cf); // c = (c' * (0+1)) * (alpha * n) 604 605 number t = n_Init(m, r->cf); 606 c = n_Div(c, t, r->cf); // c = ((c' * (0+1)) * (alpha * n)) / (m-0); 607 n_Delete(&t, r->cf); 608 } 609 610 n_Delete(&nn, r->cf); 610 611 611 612 p = p_NSet(c, r); -
libpolys/polys/nc/ncSAMult.h
rc4ead28 r06abb07 45 45 { 46 46 poly pMonom = p_LmInit(pTerm, r); 47 pSetCoeff0(pMonom, n_Init(i, r ));47 pSetCoeff0(pMonom, n_Init(i, r->cf)); 48 48 return pMonom; 49 49 } -
libpolys/polys/nc/old.gring.cc
rc4ead28 r06abb07 63 63 // #endif 64 64 65 static poly NF_Proc_Dummy(ideal, ideal, poly, int, int, const ring _currRing)65 static poly NF_Proc_Dummy(ideal, ideal, poly, int, int, const ring) 66 66 { WerrorS("nc_NF not defined"); return NULL; } 67 static ideal BBA_Proc_Dummy (const ideal, const ideal, const intvec *, const intvec *, kStrategy strat, const ring)67 static ideal BBA_Proc_Dummy (const ideal, const ideal, const intvec *, const intvec *, kStrategy, const ring) 68 68 { WerrorS("nc_NF not defined"); return NULL; } 69 69 … … 424 424 } 425 425 p_GetExpV(p,P,r); 426 cP=p _GetCoeff(p,r);427 cOut=n_Mult(cP,cM,r );426 cP=pGetCoeff(p); 427 cOut=n_Mult(cP,cM,r->cf); 428 428 if (side==1) 429 429 { … … 435 435 } 436 436 v = p_Mult_nn(v,cOut,r); 437 n_Delete(&cOut,r );437 n_Delete(&cOut,r->cf); 438 438 p_SetCompP(v,expOut,r); 439 439 … … 518 518 } 519 519 520 number cff=n_Init(1,r );520 number cff=n_Init(1,r->cf); 521 521 number tmp_num=NULL; 522 522 int cpower=0; … … 540 540 } 541 541 } 542 cff = n_Copy(p _GetCoeff(MATELEM(r->GetNC()->COM,1,2),r),r);543 n_Power(cff,tpower,&tmp_num, r );544 n_Delete(&cff,r );542 cff = n_Copy(pGetCoeff(MATELEM(r->GetNC()->COM,1,2)),r->cf); 543 n_Power(cff,tpower,&tmp_num, r->cf); 544 n_Delete(&cff,r->cf); 545 545 cff = tmp_num; 546 546 } 547 547 else /* skew commutative with nonequal coeffs */ 548 548 { 549 number totcff=n_Init(1,r );549 number totcff=n_Init(1,r->cf); 550 550 for(j=jG; j<=iG; j++) 551 551 { … … 558 558 { 559 559 cpower = F[i]*G[j]; // bug! overflow danger!!! 560 cff = n_Copy(p _GetCoeff(MATELEM(r->GetNC()->COM,j,i),r),r);561 n_Power(cff,cpower,&tmp_num, r );562 cff = n_Mult(totcff,tmp_num, r );563 n_Delete(&totcff, r );564 n_Delete(&tmp_num, r );565 totcff = n_Copy(cff,r );566 n_Delete(&cff,r );560 cff = n_Copy(pGetCoeff(MATELEM(r->GetNC()->COM,j,i)),r->cf); 561 n_Power(cff,cpower,&tmp_num, r->cf); 562 cff = n_Mult(totcff,tmp_num, r->cf); 563 n_Delete(&totcff, r->cf); 564 n_Delete(&tmp_num, r->cf); 565 totcff = n_Copy(cff,r->cf); 566 n_Delete(&cff,r->cf); 567 567 } 568 568 } /* end 2nd for */ … … 633 633 poly Rout=NULL; 634 634 number *c=(number *)omAlloc0((rN+1)*sizeof(number)); 635 c[0]=n_Init(1,r );635 c[0]=n_Init(1,r->cf); 636 636 637 637 int *Op=Nxt; … … 654 654 655 655 w=gnc_mm_Mult_uu(Op,t,On[t],r); 656 c[cnt]=n_Mult(c[cnt-1],p _GetCoeff(w,r),r);656 c[cnt]=n_Mult(c[cnt-1],pGetCoeff(w),r->cf); 657 657 D = pNext(w); /* getting coef and rest D */ 658 658 p_LmDelete(&w,r); … … 869 869 poly Rout=NULL; 870 870 number *c=(number *)omAlloc0((cnt+2)*sizeof(number)); 871 c[cnt+1]=n_Init(1,r );871 c[cnt+1]=n_Init(1,r->cf); 872 872 i=cnt+2; /* later in freeN */ 873 873 int *Op=Nxt; … … 898 898 899 899 poly w=gnc_uu_Mult_ww(t,Op[t],jG,bG,r); 900 c[cnt]=n_Copy(p _GetCoeff(w,r),r);900 c[cnt]=n_Copy(pGetCoeff(w),r->cf); 901 901 D = pNext(w); /* getting coef and rest D */ 902 902 p_LmDelete(&w,r); … … 943 943 #endif 944 944 p_Delete(&Pp,r); 945 num=n_Mult(c[cnt+1],c[cnt],r );946 n_Delete(&c[cnt],r );945 num=n_Mult(c[cnt+1],c[cnt],r->cf); 946 n_Delete(&c[cnt],r->cf); 947 947 c[cnt]=num; 948 948 Rout=p_Mult_nn(Rout,c[cnt+1],r); /* Rest is ready */ … … 1119 1119 p_AddExp(out,j,b,r); 1120 1120 p_Setm(out,r); 1121 if (n_IsOne(p _GetCoeff(MATELEM(r->GetNC()->COM,j,i),r),r)) /* commutative case */1121 if (n_IsOne(pGetCoeff(MATELEM(r->GetNC()->COM,j,i)),r->cf)) /* commutative case */ 1122 1122 { 1123 1123 return(out); … … 1125 1125 else 1126 1126 { 1127 number tmp_number=p _GetCoeff(MATELEM(r->GetNC()->COM,j,i),r); /* quasicommutative case */1128 n_Power(tmp_number,a*b,&tmp_number, r ); // BUG! ;-(1127 number tmp_number=pGetCoeff(MATELEM(r->GetNC()->COM,j,i)); /* quasicommutative case */ 1128 n_Power(tmp_number,a*b,&tmp_number, r->cf); // BUG! ;-( 1129 1129 p_SetCoeff(out,tmp_number,r); 1130 1130 return(out); … … 1424 1424 /* GCD stuff */ 1425 1425 number cG = n_SubringGcd(C, cF, r->cf); 1426 if ( !n_IsOne(cG,r ) )1427 { 1428 cF = n_Div(cF, cG, r ); n_Normalize(cF, r);1429 C = n_Div(C, cG, r ); n_Normalize(C, r);1426 if ( !n_IsOne(cG,r->cf) ) 1427 { 1428 cF = n_Div(cF, cG, r->cf); n_Normalize(cF, r->cf); 1429 C = n_Div(C, cG, r->cf); n_Normalize(C, r->cf); 1430 1430 } 1431 1431 else 1432 1432 { 1433 cF = n_Copy(cF, r );1434 C = n_Copy(C, r );1435 } 1436 n_Delete(&cG,r );1433 cF = n_Copy(cF, r->cf); 1434 C = n_Copy(C, r->cf); 1435 } 1436 n_Delete(&cG,r->cf); 1437 1437 p2 = p_Mult_nn(p2, C, r); 1438 1438 poly out = nc_mm_Mult_pp(m, pNext(p1), r); … … 1440 1440 p_Test(p2,r); 1441 1441 p_Test(N,r); 1442 if (!n_IsMOne(cF,r ))1443 { 1444 cF = n_InpNeg(cF,r );1442 if (!n_IsMOne(cF,r->cf)) 1443 { 1444 cF = n_InpNeg(cF,r->cf); 1445 1445 N = p_Mult_nn(N, cF, r); 1446 1446 p_Test(N,r); … … 1450 1450 if ( out!=NULL ) p_Content(out,r); 1451 1451 p_Delete(&m,r); 1452 n_Delete(&cF,r );1453 n_Delete(&C,r );1452 n_Delete(&cF,r->cf); 1453 n_Delete(&C,r->cf); 1454 1454 return(out); 1455 1455 } … … 1486 1486 number cG = n_SubringGcd(C, cF, r->cf); 1487 1487 1488 if (!n_IsOne(cG, r ))1489 { 1490 cF = n_Div(cF, cG, r ); n_Normalize(cF, r);1491 C = n_Div(C, cG, r ); n_Normalize(C, r);1488 if (!n_IsOne(cG, r->cf)) 1489 { 1490 cF = n_Div(cF, cG, r->cf); n_Normalize(cF, r->cf); 1491 C = n_Div(C, cG, r->cf); n_Normalize(C, r->cf); 1492 1492 } 1493 1493 else 1494 1494 { 1495 cF = n_Copy(cF, r );1496 C = n_Copy(C, r );1497 } 1498 n_Delete(&cG,r );1495 cF = n_Copy(cF, r->cf); 1496 C = n_Copy(C, r->cf); 1497 } 1498 n_Delete(&cG,r->cf); 1499 1499 1500 1500 p2 = p_Mult_nn(p2, C, r); // p2 !!! 1501 1501 p_Test(p2,r); 1502 n_Delete(&C,r );1503 n_Delete(&cG,r );1502 n_Delete(&C,r->cf); 1503 n_Delete(&cG,r->cf); 1504 1504 1505 1505 poly out = nc_mm_Mult_pp(m, pNext(p1), r); … … 1509 1509 p_Test(N,r); 1510 1510 1511 if (!n_IsMOne(cF,r )) // ???1512 { 1513 cF = n_InpNeg(cF,r );1511 if (!n_IsMOne(cF,r->cf)) // ??? 1512 { 1513 cF = n_InpNeg(cF,r->cf); 1514 1514 N = p_Mult_nn(N, cF, r); 1515 1515 p_Test(N,r); 1516 1516 } 1517 n_Delete(&cF,r );1517 n_Delete(&cF,r->cf); 1518 1518 1519 1519 out = p_Add_q(p2,N,r); // delete N, p2 … … 1571 1571 /* GCD stuff */ 1572 1572 number C = n_SubringGcd(C1,C2,r->cf); 1573 if (!n_IsOne(C,r ))1574 { 1575 C1=n_Div(C1,C, r );n_Normalize(C1,r);1576 C2=n_Div(C2,C, r );n_Normalize(C2,r);1573 if (!n_IsOne(C,r->cf)) 1574 { 1575 C1=n_Div(C1,C, r->cf);n_Normalize(C1,r->cf); 1576 C2=n_Div(C2,C, r->cf);n_Normalize(C2,r->cf); 1577 1577 } 1578 1578 else 1579 1579 { 1580 C1=n_Copy(C1, r );1581 C2=n_Copy(C2, r );1582 } 1583 n_Delete(&C,r );1580 C1=n_Copy(C1, r->cf); 1581 C2=n_Copy(C2, r->cf); 1582 } 1583 n_Delete(&C,r->cf); 1584 1584 M1=p_Mult_nn(M1,C2,r); 1585 1585 p_SetCoeff(m1,C2,r); 1586 if (n_IsMOne(C1,r ))1586 if (n_IsMOne(C1,r->cf)) 1587 1587 { 1588 1588 M2=p_Add_q(M1,M2,r); … … 1590 1590 else 1591 1591 { 1592 C1=n_InpNeg(C1,r );1592 C1=n_InpNeg(C1,r->cf); 1593 1593 M2=p_Mult_nn(M2,C1,r); 1594 1594 M2=p_Add_q(M1,M2,r); … … 1754 1754 number C = n_SubringGcd(C1, C2, r->cf); // C = gcd(C1, C2) 1755 1755 1756 if (!n_IsOne(C, r )) // if C != 11757 { 1758 C1=n_Div(C1, C, r );n_Normalize(C1,r); // C1 = C1 / C1759 C2=n_Div(C2, C, r );n_Normalize(C2,r); // C2 = C2 / C1756 if (!n_IsOne(C, r->cf)) // if C != 1 1757 { 1758 C1=n_Div(C1, C, r->cf);n_Normalize(C1,r->cf); // C1 = C1 / C 1759 C2=n_Div(C2, C, r->cf);n_Normalize(C2,r->cf); // C2 = C2 / C 1760 1760 } 1761 1761 else 1762 1762 { 1763 C1=n_Copy(C1,r );1764 C2=n_Copy(C2,r );1765 } 1766 1767 n_Delete(&C,r ); // destroy the number C1768 1769 C1=n_InpNeg(C1,r );1763 C1=n_Copy(C1,r->cf); 1764 C2=n_Copy(C2,r->cf); 1765 } 1766 1767 n_Delete(&C,r->cf); // destroy the number C 1768 1769 C1=n_InpNeg(C1,r->cf); 1770 1770 1771 1771 // number MinusOne=n_Init(-1,r); … … 1915 1915 M=p_Add_q(M,nc_mm_Mult_p(m,p_LmDeleteAndNext(p_Copy(p1,r),r),r),r); // _pp? 1916 1916 q=p_Mult_nn(q,C,r); 1917 number MinusOne=n_Init(-1,r );1918 if (!n_Equal(cQ,MinusOne,r ))1917 number MinusOne=n_Init(-1,r->cf); 1918 if (!n_Equal(cQ,MinusOne,r->cf)) 1919 1919 { 1920 1920 cQ=nInpNeg(cQ); … … 1925 1925 1926 1926 p_Delete(&m,r); 1927 n_Delete(&C,r );1928 n_Delete(&cQ,r );1929 n_Delete(&MinusOne,r );1927 n_Delete(&C,r->cf); 1928 n_Delete(&cQ,r->cf); 1929 n_Delete(&MinusOne,r->cf); 1930 1930 /* return(q); */ 1931 1931 } … … 1968 1968 } 1969 1969 1970 // n_Delete(&p_GetCoeff(m, r), r );1970 // n_Delete(&p_GetCoeff(m, r), r->cf); 1971 1971 // pSetCoeff0(m, NULL); 1972 1972 … … 1983 1983 // b will not be multiplied by any constant in this impl. 1984 1984 // ==> *c=1 1985 if (c!=NULL) *c=n_Init(1, r );1985 if (c!=NULL) *c=n_Init(1, r->cf); 1986 1986 poly m=p_One(r); 1987 1987 p_ExpVectorDiff(m,kBucketGetLm(b),p, r); … … 1993 1993 assume(pp!=NULL); 1994 1994 p_Delete(&m, r); 1995 number n=p _GetCoeff(pp, r);1995 number n=pGetCoeff(pp); 1996 1996 number nn; 1997 if (!n_IsMOne(n, r ))1998 { 1999 nn=n_InpNeg(n_Invers(n, r ), r);2000 n= n_Mult(nn,p _GetCoeff(kBucketGetLm(b), r), r);2001 n_Delete(&nn, r );1997 if (!n_IsMOne(n, r->cf)) 1998 { 1999 nn=n_InpNeg(n_Invers(n, r->cf), r->cf); 2000 n= n_Mult(nn,pGetCoeff(kBucketGetLm(b)), r->cf); 2001 n_Delete(&nn, r->cf); 2002 2002 pp=p_Mult_nn(pp,n,r); 2003 n_Delete(&n, r );2003 n_Delete(&n, r->cf); 2004 2004 } 2005 2005 else … … 2031 2031 // b will not be multiplied by any constant in this impl. 2032 2032 // ==> *c=1 2033 if (c!=NULL) *c=n_Init(1, r );2033 if (c!=NULL) *c=n_Init(1, r->cf); 2034 2034 poly m = p_One(r); 2035 2035 const poly pLmB = kBucketGetLm(b); // no new copy! … … 2059 2059 2060 2060 assume( pp != NULL ); 2061 const number n = p _GetCoeff(pp, r); // bug!2062 2063 if (!n_IsMOne(n, r ) ) // does this improve performance??!? also see below... // TODO: check later on.2061 const number n = pGetCoeff(pp); // bug! 2062 2063 if (!n_IsMOne(n, r->cf) ) // does this improve performance??!? also see below... // TODO: check later on. 2064 2064 // if n == -1 => nn = 1 and -1/n 2065 2065 { 2066 number nn=n_InpNeg(n_Invers(n, r ), r);2067 number t = n_Mult(nn,p _GetCoeff(pLmB, r), r);2068 n_Delete(&nn, r );2066 number nn=n_InpNeg(n_Invers(n, r->cf), r->cf); 2067 number t = n_Mult(nn,pGetCoeff(pLmB), r->cf); 2068 n_Delete(&nn, r->cf); 2069 2069 pp = p_Mult_nn(pp,t,r); 2070 n_Delete(&t, r );2070 n_Delete(&t, r->cf); 2071 2071 } 2072 2072 else … … 2116 2116 //cc=*c; 2117 2117 //*c=nMult(*c,c2); 2118 n_Delete(&c2, r );2118 n_Delete(&c2, r->cf); 2119 2119 //nDelete(&cc); 2120 2120 p_Delete(&pp, r); 2121 2121 } 2122 2122 if (c!=NULL) *c=ctmp; 2123 else n_Delete(&ctmp, r );2123 else n_Delete(&ctmp, r->cf); 2124 2124 } 2125 2125 … … 2150 2150 //cc=*c; 2151 2151 //*c=nMult(*c,c2); 2152 n_Delete(&c2, r );2152 n_Delete(&c2, r->cf); 2153 2153 //nDelete(&cc); 2154 2154 p_Delete(&pp, r); 2155 2155 } 2156 2156 if (c!=NULL) *c=ctmp; 2157 else n_Delete(&ctmp, r );2157 else n_Delete(&ctmp, r->cf); 2158 2158 } 2159 2159 … … 2164 2164 // b will not by multiplied by any constant in this impl. 2165 2165 // ==> *c=1 2166 if (c!=NULL) *c=n_Init(1, r );2166 if (c!=NULL) *c=n_Init(1, r->cf); 2167 2167 poly m=p_One(r); 2168 2168 p_ExpVectorDiff(m,p_Head(b, r),p, r); … … 2175 2175 2176 2176 p_Delete(&m, r); 2177 number n=p _GetCoeff(pp, r);2177 number n=pGetCoeff(pp); 2178 2178 number nn; 2179 if (!n_IsMOne(n, r ))2180 { 2181 nn=n_InpNeg(n_Invers(n, r ), r);2182 n =n_Mult(nn,p _GetCoeff(b, r), r);2183 n_Delete(&nn, r );2179 if (!n_IsMOne(n, r->cf)) 2180 { 2181 nn=n_InpNeg(n_Invers(n, r->cf), r->cf); 2182 n =n_Mult(nn,pGetCoeff(b), r->cf); 2183 n_Delete(&nn, r->cf); 2184 2184 pp=p_Mult_nn(pp,n,r); 2185 n_Delete(&n, r );2185 n_Delete(&n, r->cf); 2186 2186 } 2187 2187 else … … 2211 2211 // b will not by multiplied by any constant in this impl. 2212 2212 // ==> *c=1 2213 if (c!=NULL) *c=n_Init(1, r );2213 if (c!=NULL) *c=n_Init(1, r->cf); 2214 2214 2215 2215 poly pp = NULL; … … 2271 2271 assume(pp != NULL); 2272 2272 2273 const number n = p _GetCoeff(pp, r); // no new copy2273 const number n = pGetCoeff(pp); // no new copy 2274 2274 2275 2275 number nn; 2276 2276 2277 if (!n_IsMOne(n, r )) // TODO: as above.2278 { 2279 nn=n_InpNeg(n_Invers(n, r ), r);2280 number t = n_Mult(nn, p _GetCoeff(b, r), r);2281 n_Delete(&nn, r );2277 if (!n_IsMOne(n, r->cf)) // TODO: as above. 2278 { 2279 nn=n_InpNeg(n_Invers(n, r->cf), r->cf); 2280 number t = n_Mult(nn, pGetCoeff(b), r->cf); 2281 n_Delete(&nn, r->cf); 2282 2282 pp=p_Mult_nn(pp, t, r); 2283 n_Delete(&t, r );2283 n_Delete(&t, r->cf); 2284 2284 } 2285 2285 else … … 2332 2332 if (pres!=NULL) 2333 2333 { 2334 coef = n_Mult(p _GetCoeff(p, r),p_GetCoeff(Q, r), r);2334 coef = n_Mult(pGetCoeff(p),pGetCoeff(Q), r->cf); 2335 2335 pres = p_Mult_nn(pres,coef,r); 2336 2336 2337 2337 sum += pres; 2338 n_Delete(&coef, r );2338 n_Delete(&coef, r->cf); 2339 2339 } 2340 2340 pIter(Q); … … 2378 2378 /* compute [ x_j^M1[j],x_i^M2[i] ] */ 2379 2379 if (i<j) {nMax=j; nMin=i;} else {nMax=i; nMin=j;} 2380 if ( (i==j) || ((MATELEM(r->GetNC()->COM,nMin,nMax)!=NULL) && n_IsOne(p _GetCoeff(MATELEM(r->GetNC()->C,nMin,nMax), r), r) )) /* not (the same exp. or commuting exps)*/2380 if ( (i==j) || ((MATELEM(r->GetNC()->COM,nMin,nMax)!=NULL) && n_IsOne(pGetCoeff(MATELEM(r->GetNC()->C,nMin,nMax)), r->cf) )) /* not (the same exp. or commuting exps)*/ 2381 2381 { bres=NULL; } 2382 2382 else … … 2384 2384 if (i<j) { bres=gnc_uu_Mult_ww(j,M1[j],i,M2[i], r); } 2385 2385 else bres=gnc_uu_Mult_ww(i,M2[i],j,M1[j], r); 2386 if (n_IsOne(p _GetCoeff(bres, r), r))2386 if (n_IsOne(pGetCoeff(bres), r->cf)) 2387 2387 { 2388 2388 bres=p_LmDeleteAndNext(bres, r); … … 2390 2390 else 2391 2391 { 2392 nTmp=n_Sub(p _GetCoeff(bres, r),n_Init(1, r), r);2392 nTmp=n_Sub(pGetCoeff(bres),n_Init(1, r->cf), r->cf); 2393 2393 p_SetCoeff(bres,nTmp, r); /* only lc ! */ 2394 2394 } … … 2511 2511 pIter(p); 2512 2512 } 2513 number ntd = n_Init(totdeg, r );2514 number nln = n_Init(length, r );2515 number nres= n_Div(ntd,nln, r );2516 n_Delete(&ntd, r );2517 n_Delete(&nln, r );2513 number ntd = n_Init(totdeg, r->cf); 2514 number nln = n_Init(length, r->cf); 2515 number nres= n_Div(ntd,nln, r->cf); 2516 n_Delete(&ntd, r->cf); 2517 n_Delete(&nln, r->cf); 2518 2518 MATELEM(res,s,t)=p_NSet(nres,r); 2519 2519 } … … 2884 2884 assume(p_IsConstant(CN,curr)); 2885 2885 2886 nN = p _GetCoeff(CN, curr);2887 if (n_IsZero(nN, curr ))2886 nN = pGetCoeff(CN); 2887 if (n_IsZero(nN, curr->cf)) 2888 2888 { 2889 2889 WerrorS("Incorrect input : zero coefficients are not allowed"); … … 2894 2894 } 2895 2895 2896 if (n_IsOne(nN, curr ))2896 if (n_IsOne(nN, curr->cf)) 2897 2897 nctype = nc_lie; 2898 2898 else … … 2968 2968 IsSkewConstant = tmpIsSkewConstant; 2969 2969 2970 if ( tmpIsSkewConstant && n_IsOne(pN, curr ) )2970 if ( tmpIsSkewConstant && n_IsOne(pN, curr->cf) ) 2971 2971 nctype = nc_lie; 2972 2972 else … … 3154 3154 p = p_One(r); 3155 3155 if (MATELEM(r->GetNC()->C,i,j)!=NULL) 3156 p_SetCoeff(p,n_Copy(pGetCoeff(MATELEM(r->GetNC()->C,i,j)),r ),r);3156 p_SetCoeff(p,n_Copy(pGetCoeff(MATELEM(r->GetNC()->C,i,j)),r->cf),r); 3157 3157 p_SetExp(p,i,1,r); 3158 3158 p_SetExp(p,j,1,r); -
libpolys/polys/nc/sca.cc
rc4ead28 r06abb07 186 186 187 187 if( (tpower) != 0 ) // degree is odd => negate coeff. 188 nCoeffM = n_InpNeg(nCoeffM, rRing ); // negate nCoeff (will destroy the original number)188 nCoeffM = n_InpNeg(nCoeffM, rRing->cf); // negate nCoeff (will destroy the original number) 189 189 190 190 const number nCoeffMM = p_GetCoeff(pMonomMM, rRing); // no new copy! 191 191 192 number nCoeff = n_Mult(nCoeffM, nCoeffMM, rRing ); // new number!192 number nCoeff = n_Mult(nCoeffM, nCoeffMM, rRing->cf); // new number! 193 193 194 194 p_SetCoeff(pMonomM, nCoeff, rRing); // delete lc(pMonomM) and set lc(pMonomM) = nCoeff … … 250 250 251 251 if( (tpower) != 0 ) // degree is odd => negate coeff. 252 nCoeffM = n_InpNeg(nCoeffM, rRing ); // negate nCoeff (will destroy the original number), creates new number!252 nCoeffM = n_InpNeg(nCoeffM, rRing->cf); // negate nCoeff (will destroy the original number), creates new number! 253 253 254 254 const number nCoeffMM = p_GetCoeff(pMonomMM, rRing); // no new copy! 255 255 256 number nCoeff = n_Mult(nCoeffM, nCoeffMM, rRing ); // new number!256 number nCoeff = n_Mult(nCoeffM, nCoeffMM, rRing->cf); // new number! 257 257 258 258 p_SetCoeff(pMonomM, nCoeff, rRing); // delete lc(pMonomM) and set lc(pMonomM) = nCoeff … … 318 318 const number nCoeff2 = p_GetCoeff(pMonom2, rRing); // no new copy! 319 319 320 number nCoeff = n_Mult(nCoeff1, nCoeff2, rRing ); // new number!320 number nCoeff = n_Mult(nCoeff1, nCoeff2, rRing->cf); // new number! 321 321 322 322 if( (tpower) != 0 ) // degree is odd => negate coeff. 323 nCoeff = n_InpNeg(nCoeff, rRing ); // negate nCoeff (will destroy the original number)323 nCoeff = n_InpNeg(nCoeff, rRing->cf); // negate nCoeff (will destroy the original number) 324 324 325 325 p_SetCoeff0(pResult, nCoeff, rRing); // set lc(pResult) = nCoeff, no destruction! … … 363 363 p_Setm(pResult, rRing); // addjust degree after previous step! 364 364 365 number nCoeff = n_Copy(p _GetCoeff(pMonom, rRing), rRing); // new number!365 number nCoeff = n_Copy(pGetCoeff(pMonom), rRing->cf); // new number! 366 366 367 367 if( cpower != 0 ) // degree is odd => negate coeff. 368 nCoeff = n_InpNeg(nCoeff, rRing ); // negate nCoeff (will destroy the original number)368 nCoeff = n_InpNeg(nCoeff, rRing->cf); // negate nCoeff (will destroy the original number) 369 369 370 370 p_SetCoeff0(pResult, nCoeff, rRing); // set lc(pResult) = nCoeff, no destruction! … … 791 791 p_Delete(&pL,r); 792 792 793 number C1 = n_Copy(p _GetCoeff(p1,r),r); // C1 = lc(p1)794 number C2 = n_Copy(p _GetCoeff(p2,r),r); // C2 = lc(p2)795 796 number C = n_Gcd(C1,C2,r ); // C = gcd(C1, C2)797 798 if (!n_IsOne(C, r )) // if C != 1799 { 800 C1=n_Div(C1, C, r ); // C1 = C1 / C801 C2=n_Div(C2, C, r ); // C2 = C2 / C802 } 803 804 n_Delete(&C,r ); // destroy the number C793 number C1 = n_Copy(pGetCoeff(p1),r->cf); // C1 = lc(p1) 794 number C2 = n_Copy(pGetCoeff(p2),r->cf); // C2 = lc(p2) 795 796 number C = n_Gcd(C1,C2,r->cf); // C = gcd(C1, C2) 797 798 if (!n_IsOne(C, r->cf)) // if C != 1 799 { 800 C1=n_Div(C1, C, r->cf); // C1 = C1 / C 801 C2=n_Div(C2, C, r->cf); // C2 = C2 / C 802 } 803 804 n_Delete(&C,r->cf); // destroy the number C 805 805 806 806 const int iSignSum = sca_Sign_mm_Mult_mm (m1, p1, r) + sca_Sign_mm_Mult_mm (m2, p2, r); … … 810 810 811 811 if( iSignSum != 0 ) // the same sign! 812 C2=n_InpNeg (C2, r );812 C2=n_InpNeg (C2, r->cf); 813 813 814 814 p_SetCoeff(m1, C2, r); // lc(m1) = C2!!! … … 865 865 #endif 866 866 867 number C1 = n_Copy( p _GetCoeff(p1, r), r);868 number C2 = n_Copy( p _GetCoeff(p2, r), r);867 number C1 = n_Copy( pGetCoeff(p1), r->cf); 868 number C2 = n_Copy( pGetCoeff(p2), r->cf); 869 869 870 870 /* GCD stuff */ 871 number C = n_Gcd(C1, C2, r );872 873 if (!n_IsOne(C, r ))874 { 875 C1 = n_Div(C1, C, r );876 C2 = n_Div(C2, C, r );877 } 878 n_Delete(&C,r );871 number C = n_Gcd(C1, C2, r->cf); 872 873 if (!n_IsOne(C, r->cf)) 874 { 875 C1 = n_Div(C1, C, r->cf); 876 C2 = n_Div(C2, C, r->cf); 877 } 878 n_Delete(&C,r->cf); 879 879 880 880 const int iSign = sca_Sign_mm_Mult_mm( m, p1, r ); 881 881 882 882 if(iSign == 1) 883 C2 = n_InpNeg(C2,r );883 C2 = n_InpNeg(C2,r->cf); 884 884 885 885 p_SetCoeff(m, C2, r); … … 892 892 893 893 p2 = p_Mult_nn(p2, C1, r); // p2 !!! 894 n_Delete(&C1,r );894 n_Delete(&C1,r->cf); 895 895 896 896 poly T = nc_mm_Mult_pp(m, pNext(p1), r); … … 1007 1007 number c = p_GetCoeff(MATELEM(C,i,j), rBase); 1008 1008 1009 if( n_IsMOne(c, rBase ) ) // !!!???1009 if( n_IsMOne(c, rBase->cf) ) // !!!??? 1010 1010 { 1011 1011 if( i < iAltVarStart) … … 1016 1016 } else 1017 1017 { 1018 if( !n_IsOne(c, rBase ) )1018 if( !n_IsOne(c, rBase->cf) ) 1019 1019 { 1020 1020 #if ((defined(PDEBUG) && OUTPUT) || MYTEST) … … 1045 1045 if( (iAltVarStart <= i) && (j <= iAltVarEnd) ) // S <= i < j <= E 1046 1046 { // anticommutative part 1047 if( !n_IsMOne(c, rBase ) )1047 if( !n_IsMOne(c, rBase->cf) ) 1048 1048 { 1049 1049 #if ((defined(PDEBUG) && OUTPUT) || MYTEST) … … 1052 1052 return false; 1053 1053 } 1054 } else 1054 } 1055 else 1055 1056 { // should commute 1056 if( !n_IsOne(c, rBase ) )1057 if( !n_IsOne(c, rBase->cf) ) 1057 1058 { 1058 1059 #if ((defined(PDEBUG) && OUTPUT) || MYTEST) -
libpolys/polys/sparsmat.cc
rc4ead28 r06abb07 2751 2751 { 2752 2752 ap->n = a->n; 2753 a->m = n_InpNeg(a->m,_R );2753 a->m = n_InpNeg(a->m,_R->cf); 2754 2754 b = b->n = a; 2755 2755 b->pos = i; … … 2761 2761 { 2762 2762 m_act[i] = a->n; 2763 a->m = n_InpNeg(a->m,_R );2763 a->m = n_InpNeg(a->m,_R->cf); 2764 2764 b = b->n = a; 2765 2765 b->pos = i;
Note: See TracChangeset
for help on using the changeset viewer.