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