Changeset efdb6d in git for Singular/sparsmat.cc


Ignore:
Timestamp:
Sep 21, 2000, 1:15:31 PM (24 years ago)
Author:
Wilfred Pohl <pohl@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'd08f5f0bb3329b8ca19f23b74cb1473686415c3a')
Children:
0611df5339938d0d0a483d83a0840bc73695c38f
Parents:
822fc78417de82c543b235478d77e1cd5e3a4bf3
Message:
use new polys


git-svn-id: file:///usr/local/Singular/svn/trunk@4627 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/sparsmat.cc

    r822fc7 refdb6d  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: sparsmat.cc,v 1.38 2000-09-19 12:18:34 pohl Exp $ */
     4/* $Id: sparsmat.cc,v 1.39 2000-09-21 11:15:31 pohl Exp $ */
    55
    66/*
     
    3838static void smExactPolyDiv(poly, poly);
    3939static BOOLEAN smIsNegQuot(poly, const poly, const poly);
    40 static poly smEMult(poly, const poly);
    4140static BOOLEAN smCheckLead(const poly, const poly);
    42 static poly smDMult(poly, const poly);
    43 static void smComplete(poly, const poly, const poly);
     41static poly smSelectCopy(poly, const poly);
     42static void smExpMultDiv(poly, const poly, const poly);
    4443static void smPolyDivN(poly, const number);
    4544static BOOLEAN smSmaller(poly, poly);
     
    16951694      return ppMult_nn(a, pGetCoeff(b));
    16961695    else
    1697       return smEMult(a, b);
    1698   }
    1699   pa = res = smEMult(a, b);
     1696      return ppMult_mm(a, b);
     1697  }
     1698  pa = res = ppMult_mm(a, b);
    17001699  pIter(b);
    17011700  do
    17021701  {
    1703     r = smEMult(a, b);
     1702    r = ppMult_mm(a, b);
    17041703    smCombineChain(&pa, r);
    17051704    pIter(b);
     
    17861785        return ppMult_nn(a, pGetCoeff(b));
    17871786      else
    1788         return smEMult(a, b);
    1789     }
    1790     pa = res = smEMult(a, b);
     1787        return ppMult_mm(a, b);
     1788    }
     1789    pa = res = ppMult_mm(a, b);
    17911790    pIter(b);
    17921791    do
    17931792    {
    1794       r = smEMult(a, b);
     1793      r = ppMult_mm(a, b);
    17951794      smCombineChain(&pa, r);
    17961795      pIter(b);
     
    18071806    {
    18081807      lead = smCheckLead(a, e);
    1809       r = smDMult(a, e);
    1810       smComplete(r, b, c);
     1808      r = smSelectCopy(a, e);
     1809      smExpMultDiv(r, b, c);
    18111810    }
    18121811    else
    18131812    {
    18141813      lead = TRUE;
    1815       r = smEMult(a, e);
     1814      r = ppMult_mm(a, e);
    18161815    }
    18171816    if (lead)
     
    18421841    if (smIsNegQuot(e, b, c))
    18431842    {
    1844       r = smDMult(a, e);
    1845       smComplete(r, b, c);
     1843      r = smSelectCopy(a, e);
     1844      smExpMultDiv(r, b, c);
    18461845      if (smCheckLead(a, e))
    18471846        smCombineChain(&pa, r);
     
    18511850    else
    18521851    {
    1853       r = smEMult(a, e);
     1852      r = ppMult_mm(a, e);
    18541853      smCombineChain(&pa, r);
    18551854    }
     
    18921891    if (smIsNegQuot(e, a, b))
    18931892    {
    1894       h = smDMult(tail, e);
    1895       smComplete(h, a, b);
     1893      h = smSelectCopy(tail, e);
     1894      smExpMultDiv(h, a, b);
    18961895    }
    18971896    else
    1898       h = smEMult(tail, e);
     1897      h = ppMult_mm(tail, e);
    18991898    nDelete(&yn);
    19001899    a = pNext(a) = pAdd(pNext(a), h);
     
    19251924      pSetExp(a,i, pGetExp(b,i)-pGetExp(c,i));
    19261925    }
     1926    pSetm(a);
    19271927    return FALSE;
    1928   }
    1929 }
    1930 
    1931 static poly smEMult(poly t, const poly e)
    1932 {
    1933   const number y = pGetCoeff(e);
    1934   poly res, h;
    1935   int i;
    1936 
    1937   h = res = pNew();
    1938   loop
    1939   {
    1940     pExpVectorCopy(h,t);
    1941     for (i=pVariables; i; i--)
    1942       pAddExp(h,i,pGetExp(e,i));
    1943     pSetm(h);
    1944     pSetCoeff0(h,nMult(y,pGetCoeff(t)));
    1945     pIter(t);
    1946     if (t == NULL)
    1947     {
    1948       pNext(h) = NULL;
    1949       return res;
    1950     }
    1951     h = pNext(h) = pNew();
    19521928  }
    19531929}
     
    19661942}
    19671943
    1968 static poly smDMult(poly t, const poly e)
     1944static poly smSelectCopy(poly t, const poly e)
    19691945{
    19701946  const number y = pGetCoeff(e);
     
    19961972}
    19971973
    1998 static void smComplete(poly t, const poly b, const poly c)
     1974static void smExpMultDiv(poly t, const poly b, const poly c)
    19991975{
    20001976  int i;
    20011977  while(t!=NULL)
    20021978  {
    2003     for (i=pVariables; i; i--)
    2004     {
    2005       pAddExp(t,i,pGetExp(b,i));
    2006       pSubExp(t,i,pGetExp(c,i));
    2007     }
    2008     pSetm(t);
     1979    pExpVectorAdd(t,b);
     1980    pExpVectorSub(t,c);
    20091981    pIter(t);
    20101982  }
Note: See TracChangeset for help on using the changeset viewer.