ADMB Documentation  11.5.3197
 All Classes Files Functions Variables Typedefs Friends Defines
fill.cpp
Go to the documentation of this file.
00001 #include "statsLib.h"
00002 
00040 void fill(const dmatrix& _d,const dvector& _v)
00041 {
00042  ADUNCONST(dmatrix,d) 
00043  ADUNCONST(dvector,v)
00044  int mmin =d.indexmin();
00045  int mmax =d.indexmax();
00046  int sz=0;
00047  int i;
00048  ivector sz1(mmin,mmax);
00049  for (i=mmin;i<=mmax;i++)
00050  {
00051    sz1(i)=d(i).indexmax()-d(i).indexmin()+1;
00052    sz+=sz1(i);
00053  }
00054  
00055  if (sz != v.indexmax()-v.indexmin()+1)
00056  {
00057    cerr << "Error in sizes in function"
00058      " void fill(const dmatrix& _d,const dvector& v)" << endl;
00059    ad_exit(1);
00060  }
00061  int offset=v.indexmin();
00062  for (i=mmin;i<=mmax;i++)
00063  {
00064    d(i)=v(offset,offset+sz1(i)-1).shift(d(i).indexmin());
00065  }
00066 }
00067 
00075 void fill(const dvar_matrix& _d,const dvar_vector& _v)
00076 {
00077  ADUNCONST(dvar_matrix,d)
00078  ADUNCONST(dvar_vector,v)
00079  int mmin =d.indexmin();
00080  int mmax =d.indexmax();
00081  int sz=0;
00082  int i;
00083  ivector sz1(mmin,mmax);
00084  for (i=mmin;i<=mmax;i++)
00085  {
00086    sz1(i)=d(i).indexmax()-d(i).indexmin()+1;
00087    sz+=sz1(i);
00088  }
00089  
00090  if (sz != v.indexmax()-v.indexmin()+1)
00091  {
00092    cerr << "Error in sizes in function"
00093      " void fill(const dmatrix& _d,const dvector& v)" << endl;
00094    ad_exit(1);
00095  }
00096  int offset=v.indexmin();
00097  for (i=mmin;i<=mmax;i++)
00098  {
00099    d(i)=v(offset,offset+sz1(i)-1).shift(d(i).indexmin());
00100  }
00101 }