ADMB Documentation  11.5.3197
 All Classes Files Functions Variables Typedefs Friends Defines
lmat7.cpp
Go to the documentation of this file.
00001 /*
00002  * $Id$
00003  *
00004  * Author: David Fournier
00005  * Copyright (c) 2008-2012 Regents of the University of California
00006  */
00011 #include "fvar.hpp"
00012 #include "admb_messages.h"
00013 
00014 /* JCA: Need sum(lvector)
00015 AD_LONG_INT sum(const lmatrix& m)
00016 {
00017   AD_LONG_INT ssum=0;
00018   int mmin=m.rowmin();
00019   int mmax=m.rowmax();
00020   for (int i=mmin;i<=mmax;i++)
00021   {
00022     ssum+=sum(m(i));
00023   }
00024   return ssum;
00025 }
00026 */
00027 
00032 AD_LONG_INT colsum(const lmatrix& m,int col)
00033 {
00034   if (col < m.colmin() || col > m.colmax())
00035   {
00036     ADMB_ARRAY_BOUNDS_ERROR("Row out of bounds",
00037     "AD_LONG_INT colsum(const lmatrix& m,int col)",
00038     m.colmin(), m.colmax(), col);
00039   }
00040   AD_LONG_INT isum=0;
00041   int mmin=m.rowmin();
00042   int mmax=m.rowmax();
00043   for (int i=mmin;i<=mmax;i++)
00044   {
00045     isum+=m(i,col);
00046   }
00047   return isum;
00048 }
00049 
00054 lvector column(const lmatrix& m,int col)
00055 {
00056   if (col < m.colmin() || col > m.colmax())
00057   {
00058     ADMB_ARRAY_BOUNDS_ERROR("Row out of bounds",
00059     "lvector column(const lmatrix& m,int col)",
00060     m.colmin(), m.colmax(), col);
00061   }
00062   int mmin=m.rowmin();
00063   int mmax=m.rowmax();
00064   lvector tmp(mmin,mmax);
00065   for (int i=mmin;i<=mmax;i++)
00066   {
00067     tmp(i)=m(i,col);
00068   }
00069   return tmp;
00070 }