ADMB Documentation  11.1.2532
 All Classes Files Functions Variables Typedefs Friends Defines
imat8.cpp
Go to the documentation of this file.
00001 /*
00002  * $Id: imat8.cpp 1112 2013-07-12 21:41:41Z johnoel $
00003  *
00004  * Author: David Fournier
00005  * Copyright (c) 2008-2012 Regents of the University of California
00006  */
00011 #include <fvar.hpp>
00012 
00017 ivector colsum(const imatrix &v)
00018   {
00019     int cmin=v.colmin();
00020     int cmax=v.colmax();
00021     int rmin=v.rowmin();
00022     int rmax=v.rowmax();
00023 
00024     ivector tmp(cmin,cmax);
00025     tmp.initialize();
00026     for (int j=cmin; j<=cmax; j++)
00027     {
00028       for (int i=rmin; i<=rmax; i++)
00029       {
00030         tmp(j)+=v(i,j);
00031       }
00032     }
00033     return tmp;
00034   }
00035 
00040 ivector rowsum(const imatrix &v)
00041   {
00042     int rmin=v.rowmin();
00043     int rmax=v.rowmax();
00044 
00045     ivector tmp(rmin,rmax);
00046     for (int i=rmin; i<=rmax; i++)
00047     {
00048       tmp(i)=sum(v(i));
00049     }
00050     return tmp;
00051   }
00052 
00057   void imatrix::fill_seqadd(int i2,int j)
00058   {
00059     int mmin=indexmin();
00060     int mmax=indexmax();
00061     int ii=i2;
00062     for (int i=mmin;i<=mmax;i++)
00063     {
00064       if (allocated((*this)(i)))
00065       {
00066         (*this)(i).fill_seqadd(ii,j);
00067         int jmax=(*this)(i).indexmax();
00068         ii=(*this)(i,jmax)+j;
00069       }
00070     }
00071   }