Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #include <admodel.h>
00008
00009 void initial_params::add_random_vector(const dvector& x)
00010 {
00011 int ii=1;
00012 for (int i=0;i<num_initial_params;i++)
00013 {
00014 if (withinbound(0,(varsptr[i])->phase_start,current_phase))
00015 {
00016 (varsptr[i])->add_value((const dvector&)(x),ii);
00017 }
00018 }
00019 }
00020
00021 void param_init_number::add_value(const dvector& ndev, const int& _ii)
00022 {
00023 int& ii=(int&) _ii;
00024 (*this)+=ndev(ii);
00025 ii++;
00026 }
00027
00028 void param_init_bounded_number::add_value(const dvector& ndev, const int& _ii)
00029 {
00030 int& ii=(int&) _ii;
00031 (*this)+=ndev(ii);
00032 ii++;
00033 }
00034
00035 void param_init_vector::add_value(const dvector& ndev, const int& _ii)
00036 {
00037 int& ii=(int&) _ii;
00038 int mmin=indexmin();
00039 int mmax=indexmax();
00040 for (int i=mmin;i<=mmax;i++)
00041 {
00042 (*this)(i)+=ndev(ii);
00043 ii++;
00044 }
00045 }
00046
00047 void param_init_bounded_vector::add_value(const dvector& ndev, const int& _ii)
00048 {
00049 int& ii=(int&) _ii;
00050 int mmin=indexmin();
00051 int mmax=indexmax();
00052 for (int i=mmin;i<=mmax;i++)
00053 {
00054 (*this)(i)+=ndev(ii);
00055 ii++;
00056 }
00057 }
00058
00059 void param_init_matrix::add_value(const dvector& ndev, const int& _ii)
00060 {
00061 int& ii=(int&) _ii;
00062 int rmin=rowmin();
00063 int rmax=rowmax();
00064 for (int i=rmin;i<=rmax;i++)
00065 {
00066 int cmin=(*this)(i).indexmin();
00067 int cmax=(*this)(i).indexmax();
00068 for (int j=cmin;j<=cmax;j++)
00069 {
00070 (*this)(i,j)+=ndev(ii);
00071 ii++;
00072 }
00073 }
00074 }
00075
00076 void param_init_bounded_matrix::add_value(const dvector& ndev, const int& _ii)
00077 {
00078 int& ii=(int&) _ii;
00079 int rmin=rowmin();
00080 int rmax=rowmax();
00081 for (int i=rmin;i<=rmax;i++)
00082 {
00083 int cmin=(*this)(i).indexmin();
00084 int cmax=(*this)(i).indexmax();
00085 for (int j=cmin;j<=cmax;j++)
00086 {
00087 (*this)(i,j)+=ndev(ii);
00088 ii++;
00089 }
00090 }
00091 }