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