ADMB Documentation  11.5.3197
 All Classes Files Functions Variables Typedefs Friends Defines
model35.cpp
Go to the documentation of this file.
00001 /*
00002  * $Id$
00003  *
00004  * Author: David Fournier
00005  * Copyright (c) 2008-2012 Regents of the University of California
00006  */
00007 #include <admodel.h>
00008 
00009 dll_data_3array::~dll_data_3array()
00010 {
00011   if (d && allocated(*this))
00012   {
00013     double * tmp=d;
00014     int rmin=rowmin();
00015     int rmax=rowmax();
00016     int cmin=colmin();
00017     int cmax=colmax();
00018     int hmin=indexmin();
00019     int hmax=indexmax();
00020     for (int j=cmin;j<=cmax;j++)
00021     {
00022       for (int i=rmin;i<=rmax;i++)
00023       {
00024         for (int k=hmin;k<=hmax;k++)
00025         {
00026           *tmp++=(*this)(k,i,j);
00027         }
00028       }
00029     }
00030   }
00031 }
00032 
00033 dll_param_d3array::~dll_param_d3array()
00034 {
00035   if (d && allocated(*this))
00036   {
00037     double * tmp=d;
00038     int rmin=rowmin();
00039     int rmax=rowmax();
00040     int cmin=colmin();
00041     int cmax=colmax();
00042     int hmin=indexmin();
00043     int hmax=indexmax();
00044     for (int j=cmin;j<=cmax;j++)
00045     {
00046       for (int i=rmin;i<=rmax;i++)
00047       {
00048         for (int k=hmin;k<=hmax;k++)
00049         {
00050           *tmp++=::value((*this)(k,i,j));
00051         }
00052       }
00053     }
00054   }
00055 }
00056 
00057 void dll_param_d3array::allocate(double * _d,int hmin,int hmax,
00058   int rmin,int rmax, int cmin,int cmax,const char * _s)
00059 {
00060   d=_d;
00061   named_dvar3_array::allocate(hmin,hmax,rmin,rmax,cmin,cmax,_s);
00062   double * tmp=_d;
00063   if (d && allocated(*this))
00064   {
00065     for (int j=cmin;j<=cmax;j++)
00066     {
00067       for (int i=rmin;i<=rmax;i++)
00068       {
00069         for (int k=hmin;k<=hmax;k++)
00070         {
00071           (*this)(k,i,j)=*tmp++;
00072         }
00073       }
00074     }
00075   }
00076 }
00077 
00078 
00079 void dll_data_3array::allocate(double * _d,int hmin,int hmax,
00080   int rmin,int rmax, int cmin,int cmax,const char * _s)
00081 {
00082   d=_d;
00083   named_d3_array::allocate(hmin,hmax,rmin,rmax,cmin,cmax,_s);
00084   if (d && allocated(*this))
00085   {
00086     double * tmp=_d;
00087     for (int j=cmin;j<=cmax;j++)
00088     {
00089       for (int i=rmin;i<=rmax;i++)
00090       {
00091         for (int k=hmin;k<=hmax;k++)
00092         {
00093           (*this)(k,i,j)=*tmp++;
00094         }
00095       }
00096     }
00097   }
00098 }
00099 
00100 
00101 dll_param_init_d3array::~dll_param_init_d3array()
00102 {
00103   double * tmp=d;
00104   if (d && allocated(*this))
00105   {
00106     int hmin=indexmin();
00107     int hmax=indexmax();
00108     int rmin=rowmin();
00109     int rmax=rowmax();
00110     int cmin=colmin();
00111     int cmax=colmax();
00112     for (int j=cmin;j<=cmax;j++)
00113     {
00114       for (int i=rmin;i<=rmax;i++)
00115       {
00116         for (int k=hmin;k<=hmax;k++)
00117         {
00118           *tmp++=::value((*this)(k,i,j));
00119         }
00120       }
00121     }
00122   }
00123 }
00124 
00125 
00126 void dll_param_init_d3array::allocate(double* _d,int hmin,int hmax,
00127   int rmin,int rmax,int cmin,int cmax,int _phase_start,const char *_s )
00128 {
00129   d=_d;
00130   named_dvar3_array::allocate(hmin,hmax,rmin,rmax,cmin,cmax,_s);
00131   initial_params::allocate(_phase_start);
00132   if (d && allocated(*this))
00133   {
00134     double * tmp=_d;
00135     for (int j=cmin;j<=cmax;j++)
00136     {
00137       for (int i=rmin;i<=rmax;i++)
00138       {
00139         for (int k=hmin;k<=hmax;k++)
00140         {
00141           (*this)(k,i,j)=*tmp++;
00142         }
00143       }
00144     }
00145   }
00146 }
00147 
00148 void dll_param_init_d3array::allocate(double* _d,int hmin,int hmax,
00149   int rmin,int rmax,int cmin,int cmax,const char *_s )
00150 {
00151   dll_param_init_d3array::allocate(_d,hmin,hmax,rmin,rmax,
00152     cmin,cmax,1,_s);
00153 }
00154 
00155 dll_data_3array& dll_data_3array::operator=(const d3_array &m)
00156 {
00157   d3_array::operator = (m);
00158   return *this;
00159 }
00160 
00161 dll_param_d3array& dll_param_d3array::operator=(const dvar3_array &m)
00162 {
00163   dvar3_array::operator = (m);
00164   return *this;
00165 }
00166 
00167 dll_param_d3array& dll_param_d3array::operator=(const d3_array &m)
00168 {
00169   dvar3_array::operator = (m);
00170   return *this;
00171 }
00172 
00173 dll_param_init_d3array& dll_param_init_d3array::operator=(const dvar3_array &m)
00174 {
00175   dvar3_array::operator = (m);
00176   return *this;
00177 }
00178 
00179 
00180 dll_param_init_d3array& dll_param_init_d3array::operator=(const d3_array &m)
00181 {
00182   dvar3_array::operator = (m);
00183   return *this;
00184 }