ADMB Documentation  11.1x.2730
 All Classes Files Functions Variables Typedefs Friends Defines
dmat6.cpp
Go to the documentation of this file.
00001 /*
00002  * $Id: dmat6.cpp 2283 2014-09-03 23:36:58Z johnoel $
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 
00020 dvector column(const dmatrix& m, int j)
00021 {
00022   return extract_column(m,j);
00023 }
00024 
00029 dvector row(const dmatrix& m, int j)
00030   {
00031     return extract_row(m,j);
00032   }
00033 
00040 dvector extract_column(const dmatrix& m, int j)
00041 {
00042   if (j < m.colmin() || j > m.colmax())
00043   {
00044     ADMB_ARRAY_BOUNDS_ERROR("Invalid matrix column specified",
00045       "dvector extract_column(const dmatrix& m,int j)",
00046       m.colmin(), m.colmax(), j);
00047   }
00048   int mmin=m.rowmin();
00049   int mmax=m.rowmax();
00050   dvector tmp(mmin,mmax);
00051 
00052   for (int i=mmin; i<=mmax; i++)
00053   {
00054     tmp.elem(i)=m.elem(i,j);
00055   }
00056   return tmp;
00057 }
00058 
00063 dvector extract_row(const dmatrix& m, int i)
00064   {
00065     if (i < m.rowmin() || i > m.rowmax())
00066     {
00067       ADMB_ARRAY_BOUNDS_ERROR("Invalid matrix row specified",
00068       "dvector extract_row(const dmatrix& m,int i)",
00069        m.rowmin(), m.rowmax(), i);
00070     }
00071     dvector tmp(m.colmin(),m.colmax());
00072 
00073     for (int j=m.colmin(); j<=m.colmax(); j++)
00074     {
00075       tmp.elem(j)=m.elem(i,j);
00076     }
00077     return(tmp);
00078   }