Changeset 503bfc1 in git


Ignore:
Timestamp:
Feb 12, 2016, 5:19:36 PM (8 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '82fc009ea2b0098c1a4896c841bb70860976bdfc')
Children:
e4a2bf6197b85736b4c554df2e065b083afef0cb
Parents:
52d6d84fe6b1bb74dbb7d6ec97baa8b77b0cccfc
Message:
system("HNF"...) for bigintmat
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Singular/extra.cc

    r52d6d8 r503bfc1  
    33673367            return FALSE;
    33683368          }
    3369           else return TRUE;
     3369          else if (h->Typ()==INTMAT_CMD)
     3370          {
     3371            res->data=(char *)singntl_HNF((intvec*)h->Data());
     3372            return FALSE;
     3373          }
     3374          else
     3375          {
     3376            WerrorS("expected `system(\"HNF\",<matrix|intmat|bigintmat>)`");
     3377            return TRUE;
     3378          }
    33703379        }
    33713380        else return TRUE;
  • libpolys/polys/clapsing.cc

    r52d6d8 r503bfc1  
    17041704}
    17051705
     1706bigintmat* singntl_HNF(bigintmat*  b)
     1707{
     1708  int r=b->rows();
     1709  if (r!=b->cols())
     1710  {
     1711    Werror("HNF of %d x %d matrix",r,b->cols());
     1712    return NULL;
     1713  }
     1714  setCharacteristic( 0 );
     1715  CFMatrix M(r,r);
     1716  int i,j;
     1717  for(i=r;i>0;i--)
     1718  {
     1719    for(j=r;j>0;j--)
     1720    {
     1721      M(i,j)=n_convSingNFactoryN(BIMATELEM(*b,i,j),FALSE,b->basecoeffs());
     1722    }
     1723  }
     1724  CFMatrix *MM=cf_HNF(M);
     1725  bigintmat *mm=bimCopy(b);
     1726  for(i=r;i>0;i--)
     1727  {
     1728    for(j=r;j>0;j--)
     1729    {
     1730      BIMATELEM(*mm,i,j)=n_convFactoryNSingN((*MM)(i,j),b->basecoeffs());
     1731    }
     1732  }
     1733  delete MM;
     1734  return mm;
     1735}
     1736
    17061737matrix singntl_LLL(matrix  m, const ring s )
    17071738{
  • libpolys/polys/clapsing.h

    r52d6d8 r503bfc1  
    5151matrix  singntl_HNF(matrix A, const ring r);
    5252intvec* singntl_HNF(intvec* A);
     53bigintmat* singntl_HNF(bigintmat* A);
    5354matrix  singntl_LLL(matrix A, const ring r);
    5455intvec* singntl_LLL(intvec* A);
Note: See TracChangeset for help on using the changeset viewer.