ADMB Documentation  11.5.3197
 All Classes Files Functions Variables Typedefs Friends Defines
Shepherd.cpp
Go to the documentation of this file.
00001 #include <admodel.h>
00002 #include <df1b2fun.h>
00003 #include <adrndeff.h> 
00004 
00005 /*---------------------------------------------------------3rd variable is a scalar*/
00006 /*---------------------------------------------2nd variable is a scalar*/
00015 dvariable Shepherd(const double& x,  const prevariable& a,  const prevariable& b,  const prevariable& c)
00016 {
00017     RETURN_ARRAYS_INCREMENT();  
00018   dvariable y;
00019   y=a*x/(b+pow(x,c));
00020 
00021   RETURN_ARRAYS_DECREMENT();
00022   return (y);
00023 }
00032 dvar_vector Shepherd(const dvector& x,  const prevariable& a,  const prevariable& b,  const prevariable& c)
00033 {
00034     RETURN_ARRAYS_INCREMENT();  
00035   dvar_vector y;
00036   y=a*elem_div(x, (b+pow(x,c)));
00037 
00038   RETURN_ARRAYS_DECREMENT();  
00039     return (y);
00040 }
00049 dvar_vector Shepherd(const dvector& x,  const dvar_vector& a,  const prevariable& b,  const prevariable& c)
00050 {
00051     RETURN_ARRAYS_INCREMENT();  
00052   dvar_vector y;
00053   y=elem_prod(a, elem_div(x, (b+pow(x,c))));
00054 
00055   RETURN_ARRAYS_DECREMENT();  
00056     return (y);
00057 }
00058 /*---------------------------------------------2nd variable is a vector*/
00067 dvar_vector Shepherd(const dvector& x,  const prevariable& a,  const dvar_vector& b,  const prevariable& c)
00068 {
00069     RETURN_ARRAYS_INCREMENT();  
00070   dvar_vector y;
00071   y=a*elem_div(x, (b+pow(x,c)));
00072 
00073   RETURN_ARRAYS_DECREMENT();  
00074     return (y);
00075 }
00084 dvar_vector Shepherd(const dvector& x,  const dvar_vector& a,  const dvar_vector& b,  const prevariable& c)
00085 {
00086     RETURN_ARRAYS_INCREMENT();  
00087   dvar_vector y;
00088   y=elem_prod(a, elem_div(x, (b+pow(x,c))));
00089 
00090   RETURN_ARRAYS_DECREMENT();  
00091     return (y);
00092 }
00093 /*---------------------------------------------------------3rd variable is a vector*/
00094 /*---------------------------------------------2nd variable is a scalar*/
00103 dvar_vector Shepherd(const dvector& x,  const prevariable& a,  const prevariable& b,  const dvar_vector& c)
00104 {
00105     RETURN_ARRAYS_INCREMENT();  
00106   dvar_vector y;
00107   y=a*elem_div(x, (b+pow(x,c)));
00108 
00109   RETURN_ARRAYS_DECREMENT();  
00110     return (y);
00111 }
00120 dvar_vector Shepherd(const dvector& x,  const dvar_vector& a,  const prevariable& b,  const dvar_vector& c)
00121 {
00122     RETURN_ARRAYS_INCREMENT();  
00123   dvar_vector y;
00124   y=elem_prod(a, elem_div(x, (b+pow(x,c))));
00125 
00126   RETURN_ARRAYS_DECREMENT();  
00127     return (y);
00128 }
00129 /*---------------------------------------------2nd variable is a vector*/
00138 dvar_vector Shepherd(const dvector& x,  const prevariable& a,  const dvar_vector& b,  const dvar_vector& c)
00139 {
00140     RETURN_ARRAYS_INCREMENT();  
00141   dvar_vector y;
00142   y=a*elem_div(x, (b+pow(x,c)));
00143 
00144   RETURN_ARRAYS_DECREMENT();  
00145     return (y);
00146 }
00155 dvar_vector Shepherd(const dvector& x,  const dvar_vector& a,  const dvar_vector& b,  const dvar_vector& c)
00156 {
00157     RETURN_ARRAYS_INCREMENT();  
00158   dvar_vector y;
00159   y=elem_prod(a, elem_div(x, (b+pow(x,c))));
00160 
00161   RETURN_ARRAYS_DECREMENT();  
00162     return (y);
00163 }
00164 /*---------------------------------------------------------3rd variable is a scalar in a random effects model*/
00165 /*---------------------------------------------2nd variable is a scalar in a random effects model*/
00166 /*----------------------1st varible contains random effects*/
00175 df1b2variable Shepherd(const double& x,  const df1b2variable& a,  const df1b2variable& b,  const df1b2variable& c)
00176 {
00177   df1b2variable y;
00178   y=a*x/(b+pow(x,c));
00179 
00180     return (y);
00181 }
00190 df1b2vector Shepherd(const dvector& x,  const df1b2variable& a,  const df1b2variable& b,  const df1b2variable& c)
00191 {
00192   df1b2vector y;
00193   y=a*elem_div(x, (b+pow(x,c)));
00194 
00195     return(y);
00196 }
00205 df1b2vector Shepherd(const dvector& x,  const df1b2vector& a,  const df1b2variable& b,  const df1b2variable& c)
00206 {
00207   df1b2vector y;
00208   y=elem_prod(a, elem_div(x, (b+pow(x,c))));
00209 
00210     return(y);
00211 }
00212 
00213 /*---------------------------------------------2nd variable is a vector in a random effects model*/
00214 /*----------------------1st varible contains random effects*/
00223 df1b2vector Shepherd(const dvector& x,  const df1b2variable& a,  const df1b2vector& b,  const df1b2variable& c)
00224 {
00225   df1b2vector y;
00226   y=a*elem_div(x, (b+pow(x,c)));
00227 
00228     return(y);
00229 }
00238 df1b2vector Shepherd(const dvector& x,  const df1b2vector& a,  const df1b2vector& b,  const df1b2variable& c)
00239 {
00240   df1b2vector y;
00241   y=elem_prod(a, elem_div(x, (b+pow(x,c))));
00242 
00243     return(y);
00244 }
00245 
00246 
00247 /*---------------------------------------------------------3rd variable is a vector in a random effects model*/
00248 /*---------------------------------------------2nd variable is a scalar in a random effects model*/
00249 /*----------------------1st varible contains random effects*/
00258 df1b2vector Shepherd(const dvector& x,  const df1b2variable& a,  const df1b2variable& b,  const df1b2vector& c)
00259 {
00260   df1b2vector y;
00261   y=a*elem_div(x, (b+pow(x,c)));
00262 
00263     return(y);
00264 }
00273 df1b2vector Shepherd(const dvector& x,  const df1b2vector& a,  const df1b2variable& b,  const df1b2vector& c)
00274 {
00275   df1b2vector y;
00276   y=elem_prod(a, elem_div(x, (b+pow(x,c))));
00277 
00278     return(y);
00279 }
00280 
00281 /*---------------------------------------------2nd variable is a vector in a random effects model*/
00282 /*----------------------1st varible contains random effects*/
00291 df1b2vector Shepherd(const dvector& x,  const df1b2variable& a,  const df1b2vector& b,  const df1b2vector& c)
00292 {
00293   df1b2vector y;
00294   y=a*elem_div(x, (b+pow(x,c)));
00295 
00296     return(y);
00297 }
00306 df1b2vector Shepherd(const dvector& x,  const df1b2vector& a,  const df1b2vector& b,  const df1b2vector& c)
00307 {
00308   df1b2vector y;
00309   y=elem_prod(a, elem_div(x, (b+pow(x,c))));
00310 
00311     return(y);
00312 }