Changeset e9d581 in git


Ignore:
Timestamp:
Jul 22, 2013, 2:24:06 PM (10 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '2234726c50d679d6664181a5c72f75a6fd64a787')
Children:
13a03bf0c76a48e756ec7fbd4e7c57a45432e301
Parents:
5b6807c5be64d7eb424e7d933a00f8cbb137d50c
Message:
add: concat for intmat, bigintmat
Location:
libpolys
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • libpolys/coeffs/bigintmat.cc

    r5b6807 re9d581  
    773773}
    774774
    775 
    776 
    777 
    778 
     775// columnwise concatination of two bigintmats
     776bigintmat * bimConcat(bigintmat * a, bigintmat * b, const coeffs cf)
     777{
     778  int ac=a->cols();
     779  int r=si_max(a->rows(),b->rows());
     780  bigintmat * ab = new bigintmat(r,ac + b->cols(),cf);
     781
     782  int i,j;
     783  for (i=1; i<=a->rows(); i++)
     784  {
     785    for (j=1; j<=ac; j++)
     786    {
     787      n_Delete(&(BIMATELEM(*ab,i,j)),cf);
     788      BIMATELEM(*ab,i,j)=n_Copy(BIMATELEM(*a,i,j),cf);
     789    }
     790  }
     791
     792  for (i=1; i<=b->rows(); i++)
     793  {
     794    for (j=1; j<=b->cols(); j++)
     795    {
     796      n_Delete(&(BIMATELEM(*ab,i,j+ac)),cf);
     797      BIMATELEM(*ab,i,j+ac)=n_Copy(BIMATELEM(*b,i,j),cf);
     798    }
     799  }
     800
     801  return ab;
     802}
     803
  • libpolys/coeffs/bigintmat.h

    r5b6807 re9d581  
    202202intvec * bim2iv(bigintmat * b);
    203203bigintmat * iv2bim(intvec * b, const coeffs C);
    204 
    205 
     204bigintmat * bimConcat(bigintmat * a, bigintmat * b, const coeffs C);
    206205#endif // #ifndef BIGINTMAT_H
  • libpolys/misc/intvec.cc

    r5b6807 re9d581  
    814814}
    815815
     816// columnwise concatination of two intvecs
     817intvec * ivConcat(intvec * a, intvec * b)
     818{
     819  int ac=a->cols();
     820  int c = ac + b->cols(); int r = si_max(a->rows(),b->rows());
     821  intvec * ab = new intvec(r,c,0);
     822
     823  int i,j;
     824  for (i=1; i<=a->rows(); i++)
     825  {
     826    for(j=1; j<=ac; j++)
     827      IMATELEM(*ab,i,j) = IMATELEM(*a,i,j);
     828  }
     829  for (i=1; i<=b->rows(); i++)
     830  {
     831    for(j=1; j<=b->cols(); j++)
     832      IMATELEM(*ab,i,j+ac) = IMATELEM(*b,i,j);
     833  }
     834  return ab;
     835}
     836
    816837#pragma GCC pop_options
    817838
  • libpolys/misc/intvec.h

    r5b6807 re9d581  
    146146void     ivTriangIntern(intvec * imat, int &ready, int &all);
    147147intvec * ivSolveKern(intvec * imat, int ready);
     148intvec * ivConcat(intvec * a, intvec * b);
    148149
    149150#ifdef MDEBUG
Note: See TracChangeset for help on using the changeset viewer.