00001
00002
00003
00004
00005
00006
00011 #include <df1b2fun.h>
00012
00017 void initial_df1b2params::reset_all(const dvector& x)
00018 {
00019 int ii=1;
00020 for (int i=0;i<num_initial_df1b2params;i++)
00021 {
00022 (varsptr[i])->set_value(x,ii);
00023 }
00024 }
00025
00030 void df1b2_init_vector::set_value(const dvector& x,const int& _ii)
00031 {
00032 ADUNCONST(int,ii)
00033 int mmin=indexmin();
00034 int mmax=indexmax();
00035 for (int i=mmin;i<=mmax;i++)
00036 {
00037
00038 (*this)(i) = (x(ii++));
00039 }
00040 }
00041
00046 void df1b2_init_matrix::set_value(const dvector& x,const int& _ii)
00047 {
00048 ADUNCONST(int,ii)
00049 int rmin=indexmin();
00050 int rmax=indexmax();
00051 for (int i=rmin;i<=rmax;i++)
00052 {
00053 int cmin=(*this)(i).indexmin();
00054 int cmax=(*this)(i).indexmax();
00055 for (int j=cmin;j<=cmax;j++)
00056 {
00057 (*this)(i,j) = (x(ii++));
00058 }
00059 }
00060 }
00061
00066 void set_value(const df1b2_init_bounded_vector & _v,const dvector& x,
00067 const int& _ii,double fmin,double fmax)
00068 {
00069 ADUNCONST(int,ii)
00070 ADUNCONST(df1b2_init_bounded_vector,v)
00071 double fpen=0.0;
00072 int mmin=v.indexmin();
00073 int mmax=v.indexmax();
00074 for (int i=mmin;i<=mmax;i++)
00075 {
00076 v(i)=boundp(x(ii++),fmin,fmax,fpen);
00077 }
00078 }
00079
00084 void df1b2_init_number::set_value(const dvector& x,const int& _ii)
00085 {
00086 ADUNCONST(int,ii)
00087 operator = (x(ii++));
00088 }
00089
00094 void set_value(const df1b2variable& _u,const dvector& x,const int& _ii,
00095 double fmin,double fmax)
00096 {
00097 double fpen=0.0;
00098 ADUNCONST(int,ii)
00099 ADUNCONST(df1b2variable,u)
00100 u=boundp(x(ii++),fmin,fmax,fpen);
00101 }
00102
00107 void set_value(const df1b2vector& _x,const dvector& v, const int& _ii,
00108 double fmin,double fmax)
00109 {
00110 double fpen=0.0;
00111 ADUNCONST(int,ii)
00112 ADUNCONST(df1b2vector,x)
00113 int min=x.indexmin();
00114 int max=x.indexmax();
00115 for (int i=min;i<=max;i++)
00116 {
00117 (x)(i)=boundp(v(ii++),fmin,fmax,fpen);
00118 }
00119 }
00120
00125 void df1b2_init_bounded_vector::set_value(const dvector& x,
00126 const int& ii)
00127 {
00128
00129 ::set_value(*this,x,ii,minb,maxb);
00130 }
00131
00136 void df1b2_init_bounded_dev_vector::set_value(const dvector& x,
00137 const int& ii)
00138 {
00139 df1b2_init_bounded_vector::set_value(x,ii);
00140
00141
00142 }
00143
00148 void df1b2_init_bounded_number::set_value(const dvector& x,const int& _ii)
00149 {
00150 ADUNCONST(int,ii)
00151
00152 ::set_value(*this,x,ii,minb,maxb);
00153 }