ADMB Documentation  11.5.3197
 All Classes Files Functions Variables Typedefs Friends Defines
df1b2f18.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  */
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     //cout << x(ii) << " ";
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   //double pen=0.0;
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   //df1b2variable m=mean(*this);
00141   //pen+=1000.0*square(m);
00142 }
00143 
00148 void df1b2_init_bounded_number::set_value(const dvector& x,const int& _ii)
00149 {
00150   ADUNCONST(int,ii)
00151   //double pen=0.0;
00152   ::set_value(*this,x,ii,minb,maxb);
00153 }