00001
00002
00003
00004
00005
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 }