Changeset 459609 in git for libpolys/polys


Ignore:
Timestamp:
May 13, 2016, 2:41:25 PM (8 years ago)
Author:
Adi Popescu <adi_popescum@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '38dfc5131670d387a89455159ed1e071997eec94')
Children:
6402b559828c96b40e77a0755dbd3ba17ba2909a
Parents:
ff38ee02732552e78a143ebf4f9aadccee454071
Message:
fix pDivideM and p_Div_nn
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libpolys/polys/monomials/p_polys.cc

    rff38ee r459609  
    14831483  pAssume(!n_IsZero(n,r->cf));
    14841484  p_Test(p, r);
    1485 
    1486   poly q = p;
    1487   while (p != NULL)
    1488   {
    1489     number nc = pGetCoeff(p);
    1490     printf("\n1,q=%p,p=%p\n",q,p);p_Write(p,r);p_Write(q,r);
    1491     pSetCoeff0(p, n_Div(nc, n, r->cf));
    1492     n_Delete(&nc, r->cf);
    1493     printf("\n2,q=%p,p=%p\n",q,p);p_Write(p,r);p_Write(q,r);
    1494     if(n_IsZero(p_GetCoeff(p,r),r->cf))
    1495       p_LmDelete(&p,r);
     1485  poly result = p;
     1486  poly prev = NULL;
     1487  while (p!=NULL)
     1488  {
     1489    number nc = n_Div(pGetCoeff(p),n,r->cf);
     1490    if (!n_IsZero(nc,r->cf))
     1491    {
     1492      p_SetCoeff(p,nc,r);
     1493      prev=p;
     1494      pIter(p);
     1495    }
    14961496    else
    1497       pIter(p);
    1498     printf("\n3,q=%p,p=%p\n",q,p);p_Write(p,r);p_Write(q,r);
    1499   }
    1500   p_Test(q, r);
    1501   return q;
     1497    {
     1498      if (prev==NULL)
     1499      {
     1500        p_LmDelete(&result,r);
     1501        p=result;
     1502      }
     1503      else
     1504      {
     1505        p_LmDelete(&pNext(prev),r);
     1506        p=pNext(prev);
     1507      }
     1508    }
     1509  }
     1510  p_Test(result,r);
     1511  return(result);
    15021512}
    15031513
     
    15521562  else
    15531563  {
    1554     p_Write(result,r);
    1555     p_Div_nn(result,inv,r);
    1556     p_Write(result,r);
     1564    result = p_Div_nn(result,inv,r);
    15571565  }
    15581566#else
    1559   p_Mult_nn(result,inv,r);
     1567  result = p_Mult_nn(result,inv,r);
    15601568  n_Delete(&inv, r->cf);
    15611569#endif
Note: See TracChangeset for help on using the changeset viewer.