Go to the documentation of this file.00001
00002
00003
00004
00005
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 }