Changeset fa2599 in git


Ignore:
Timestamp:
Jun 28, 2018, 4:11:18 PM (6 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'b4f17ed1d25f93d46dbe29e4b499baecc2fd51bb')
Children:
13673122266edb13d76ff215c7d27bf6d7aa7ce3
Parents:
c30f2a5c7c1e7bcaad9c89db8130f63e91fda6a9
Message:
add smatrix: system("flatten",A) resp. flatten(A)
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/matrix.lib

    rc30f2a5 rfa2599  
    175175
    176176proc flatten (def A)
    177 "USAGE:   flatten(A); A matrix
    178 RETURN:  ideal, generated by all entries from A
     177"USAGE:   flatten(A); A matrix/smatrix
     178RETURN:  ideal, generated by all entries from A resp. all colums of A appended
    179179EXAMPLE: example flatten; shows an example
    180180"
    181181{
     182   if (typeof(A)=="smatrix") {return system("flatten",A); }
    182183   return(ideal(A));
    183184}
     
    188189   print(A);
    189190   flatten(A);
     191   flatten(smatrix(A));
    190192}
    191193///////////////////////////////////////////////////////////////////////////////
  • Singular/extra.cc

    rc30f2a5 rfa2599  
    316316      }
    317317      return TRUE;
     318    }
     319    else
     320  /*==================== flatten =============================*/
     321    if(strcmp(sys_cmd,"flatten")==0)
     322    {
     323      if ((h!=NULL) &&(h->Typ()==SMATRIX_CMD))
     324      {
     325        res->data=(char*)sm_Flatten((ideal)h->Data(),currRing);
     326        res->rtyp=SMATRIX_CMD;
     327        return FALSE;
     328      }
     329      else
     330        WerrorS("smatrix expected");
    318331    }
    319332    else
  • libpolys/polys/matpol.cc

    rc30f2a5 rfa2599  
    18241824}
    18251825
     1826ideal sm_Flatten(ideal a, const ring R)
     1827{
     1828  if (IDELEMS(a)==0) return id_Copy(a,R);
     1829  ideal res=idInit(1,IDELEMS(a)*a->rank);
     1830  for(int i=0;i<IDELEMS(a);i++)
     1831  {
     1832    if(a->m[i]!=NULL)
     1833    {
     1834      poly p=p_Copy(a->m[i],R);
     1835      if (i==0) res->m[0]=p;
     1836      else
     1837      {
     1838        p_Shift(&p,i*a->rank,R);
     1839        res->m[0]=p_Add_q(res->m[0],p,R);
     1840      }
     1841    }
     1842  }
     1843  return res;
     1844}
    18261845/*2
    18271846*returns the trace of matrix a
  • libpolys/polys/matpol.h

    rc30f2a5 rfa2599  
    9898ideal sm_Sub(ideal a, ideal b, const ring R);
    9999ideal sm_Mult(ideal a, ideal b, const ring R);
     100ideal sm_Flatten(ideal a, const ring R);
    100101poly sm_Trace ( ideal a, const ring R);
    101102int sm_Compare(ideal a, ideal b, const ring R);
Note: See TracChangeset for help on using the changeset viewer.