ADMB Documentation  11.1.2261
 All Classes Files Functions Variables Typedefs Friends Defines
fvar_ar7.cpp
Go to the documentation of this file.
00001 /*
00002  * $Id: fvar_ar7.cpp 1919 2014-04-22 22:02:01Z 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 dvar_vector column(const dvar_matrix& m,int j)
00019   {
00020     return extract_column(m,j);
00021   }
00022 
00027 dvar_vector row(const dvar_matrix& m,int j)
00028   {
00029     return extract_row(m,j);
00030   }
00031 
00036 dvar_vector extract_column(const dvar_matrix& m, int j)
00037   {
00038     if (j < m.colmin() || j > m.colmax())
00039     {
00040       ADMB_ARRAY_BOUNDS_ERROR("Invalid matrix column specified",
00041       "dvar_vector extract_column(const dvar_matrix& m,int j)",
00042        m.colmin(), m.colmax(), j);
00043     }
00044     dvar_vector tmp(m.rowmin(),m.rowmax());
00045 
00046     for (int i=m.rowmin(); i<=m.rowmax(); i++)
00047     {
00048       tmp.elem(i)=m.elem(i,j);
00049     }
00050     return(tmp);
00051   }
00052 
00057 dvector column_value(const dvar_matrix& m, int j)
00058   {
00059     if (j < m.colmin() || j > m.colmax())
00060     {
00061       ADMB_ARRAY_BOUNDS_ERROR("Invalid matrix column specified",
00062       "dvector column_value(const dvar_matrix& m,int j)",
00063       m.colmin(), m.colmax(), j);
00064     }
00065     dvector tmp(m.rowmin(),m.rowmax());
00066 
00067     for (int i=m.rowmin(); i<=m.rowmax(); i++)
00068     {
00069       tmp.elem(i)=m.elem_value(i,j);
00070     }
00071     return(tmp);
00072   }
00073 
00078 dvar_vector extract_row(const dvar_matrix& m, int i)
00079   {
00080     if (i < m.rowmin() || i > m.rowmax())
00081     {
00082       ADMB_ARRAY_BOUNDS_ERROR("Invalid matrix row specified",
00083       "dvar_vector extract_row(const dvar_matrix& m,int i)",
00084       m.rowmin(), m.rowmax(), i);
00085     }
00086     dvar_vector tmp(m.colmin(),m.colmax());
00087 
00088     for (int j=m.colmin(); j<=m.colmax(); j++)
00089     {
00090       tmp.elem(j)=m.elem(i,j);
00091     }
00092     return(tmp);
00093   }