Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00011 #include "fvar.hpp"
00012
00017 dvar_vector VEC(const dvar_matrix& _m)
00018 {
00019 dvar_matrix& m= (dvar_matrix&) _m;
00020 int i;
00021 int mmin=m.indexmin();
00022 int mmax=m.indexmax();
00023 int ii=0;
00024 ivector io(mmin-1,mmax);
00025 io(mmin-1)=0;
00026 for (i=mmin;i<=mmax;i++)
00027 {
00028 ii+=m(i).indexmax()-m(i).indexmin()+1;
00029 io(i)=ii;
00030 }
00031 dvar_vector tmp(1,ii);
00032 for (i=mmin;i<=mmax;i++)
00033 {
00034 tmp(io(i-1)+1,io(i)).shift(m(i).indexmin())=m(i);
00035 }
00036 return tmp;
00037 }
00038
00046 dvar_matrix MAT(const dvar_vector& v, int n, int m)
00047 {
00048 dvar_matrix tmp(1,n,1,m);
00049 int mmin=v.indexmin();
00050 int mmax=v.indexmax();
00051 int ii=mmin;
00052 if ( mmax-mmin+1 != n*m)
00053 {
00054 cerr << " Vector and Matrix sizes don't match in function MAT" << endl;
00055 tmp.initialize();
00056 return tmp;
00057 }
00058 for (int i=1;i<=n;i++)
00059 {
00060 for (int j=1;j<=m;j++)
00061 {
00062 tmp(i,j)=v(ii++);
00063 }
00064 }
00065 return tmp;
00066 }