ADMB Documentation  11.5.3197
 All Classes Files Functions Variables Typedefs Friends Defines
model19.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 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   //d(ii)=(boundp(x(ii)+1.e-6,minb,maxb,pen)-
00027   //      2.*boundp(x(ii),minb,maxb,pen)+
00028   //boundp(x(ii)-1.e-6,minb,maxb,pen))/1.e-12;
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   }