ADMB Documentation  11.1.2192
 All Classes Files Functions Variables Typedefs Friends Defines
dmat6.cpp
Go to the documentation of this file.
00001 /*
00002  * $Id: dmat6.cpp 1712 2014-02-28 23:52:33Z 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 
00018 dvector column(const dmatrix& m, int j)
00019   {
00020     return extract_column(m,j);
00021   }
00022 
00027 dvector row(const dmatrix& m, int j)
00028   {
00029     return extract_row(m,j);
00030   }
00031 
00036 dvector extract_column(const dmatrix& m, int j)
00037   {
00038     if (j < m.colmin() || j > m.colmax())
00039     {
00040       ADMB_ARRAY_BOUNDS_ERROR("Invalid matrix column specified",
00041       "dvector extract_column(const dmatrix& m,int j)",
00042       m.colmin(), m.colmax(), j);
00043     }
00044     int mmin=m.rowmin();
00045     int mmax=m.rowmax();
00046     dvector tmp(mmin,mmax);
00047 
00048     for (int i=mmin; i<=mmax; i++)
00049     {
00050       tmp.elem(i)=m.elem(i,j);
00051     }
00052     return(tmp);
00053   }
00054 
00059 dvector extract_row(const dmatrix& m, int i)
00060   {
00061     if (i < m.rowmin() || i > m.rowmax())
00062     {
00063       ADMB_ARRAY_BOUNDS_ERROR("Invalid matrix row specified",
00064       "dvector extract_row(const dmatrix& m,int i)",
00065        m.rowmin(), m.rowmax(), i);
00066     }
00067     dvector tmp(m.colmin(),m.colmax());
00068 
00069     for (int j=m.colmin(); j<=m.colmax(); j++)
00070     {
00071       tmp.elem(j)=m.elem(i,j);
00072     }
00073     return(tmp);
00074   }