ADMB Documentation  11.5.3349
 All Classes Files Functions Variables Typedefs Friends Defines
imat8.cpp
Go to the documentation of this file.
00001 /*
00002 Author: David Fournier
00003 Copyright (c) 2008-2012 Regents of the University of California
00004 */
00005 
00006 #include <fvar.hpp>
00007 
00011 ivector colsum(const imatrix& m)
00012 {
00013   int cmin = m.colmin();
00014   int cmax = m.colmax();
00015   ivector ret(cmin, cmax);
00016   ret.initialize();
00017 
00018   int rmin = m.rowmin();
00019   int rmax = m.rowmax();
00020   for (int j=cmin; j<=cmax; j++)
00021   {
00022     for (int i=rmin; i<=rmax; i++)
00023     {
00024       ret(j) += m(i,j);
00025     }
00026   }
00027   return ret;
00028 }
00032 ivector rowsum(const imatrix& m)
00033 {
00034   int rmin = m.rowmin();
00035   int rmax = m.rowmax();
00036   ivector ret(rmin, rmax);
00037 
00038   for (int i=rmin; i<=rmax; ++i)
00039   {
00040     ret(i) = sum(m(i));
00041   }
00042 
00043   return ret;
00044 }
00045 
00050   void imatrix::fill_seqadd(int i2,int j)
00051   {
00052     int mmin=indexmin();
00053     int mmax=indexmax();
00054     int ii=i2;
00055     for (int i=mmin;i<=mmax;i++)
00056     {
00057       if (allocated((*this)(i)))
00058       {
00059         (*this)(i).fill_seqadd(ii,j);
00060         int jmax=(*this)(i).indexmax();
00061         ii=(*this)(i,jmax)+j;
00062       }
00063     }
00064   }