Changeset cea6f3 in git for kernel/p_Mult_mm__T.cc


Ignore:
Timestamp:
Jan 13, 2006, 7:10:06 PM (18 years ago)
Author:
Oliver Wienand <wienand@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
2e4de3d33d0bea3780e1932fdaf8a41c161f473e
Parents:
4cbb61ba5014a593b9bc6569b497e9a8151bc15f
Message:
RING2TOM Merger


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

Legend:

Unmodified
Added
Removed
  • kernel/p_Mult_mm__T.cc

    r4cbb61 rcea6f3  
    77 *  Author:  obachman (Olaf Bachmann)
    88 *  Created: 8/00
    9  *  Version: $Id: p_Mult_mm__T.cc,v 1.1.1.1 2003-10-06 12:16:00 Singular Exp $
     9 *  Version: $Id: p_Mult_mm__T.cc,v 1.2 2006-01-13 18:10:05 wienand Exp $
    1010 *******************************************************************/
    1111
     
    1919LINKAGE poly p_Mult_mm(poly p, const poly m, const ring ri)
    2020{
     21  poly before = p;
    2122  p_Test(p, ri);
    2223  p_LmTest(m, ri);
     
    3334  {
    3435    pn = pGetCoeff(p);
    35     pSetCoeff0(p, n_Mult(ln, pn, ri));
    36     n_Delete(&pn, ri);
    37     p_MemAdd(p->exp, m_e, length);
    38     p_MemAddAdjust(p, ri);
    39     p = pNext(p);
     36    number tmp = n_Mult(ln, pn, ri);
     37#ifdef HAVE_RING2TOM
     38    if (n_IsZero(tmp, ri)) {
     39      if (before == p) {
     40        p = pNext(p);
     41        before = p;
     42        q = p;
     43      }
     44      else {
     45        pNext(before) = pNext(p);
     46        p_LmFree(p, ri);
     47        p = pNext(before);
     48      }
     49    }
     50    else
     51#endif
     52    {
     53      pSetCoeff0(p, tmp);
     54      n_Delete(&pn, ri);
     55      p_MemAdd(p->exp, m_e, length);
     56      p_MemAddAdjust(p, ri);
     57#ifdef HAVE_RING_2TOM
     58      before = p;
     59#endif
     60      p = pNext(p);
     61    }
    4062  }
    4163  p_Test(q, ri);
Note: See TracChangeset for help on using the changeset viewer.