ADMB Documentation  11.5.3197
 All Classes Files Functions Variables Typedefs Friends Defines
Ricker.cpp
Go to the documentation of this file.
00001 #include <admodel.h>
00002 #include <df1b2fun.h>
00003 #include <adrndeff.h> 
00004 
00005 
00006 /*---------------------------------------------2nd variable is a scalar*/
00014 dvariable Ricker(const double& x,  const prevariable& a,  const prevariable& b)
00015 {
00016     RETURN_ARRAYS_INCREMENT();  
00017   dvariable y;
00018   y=a*x*exp(-b*x);
00019 
00020   RETURN_ARRAYS_DECREMENT();
00021   return (y);
00022 }
00030 dvar_vector Ricker(const dvector& x,  const prevariable& a,  const prevariable& b)
00031 {
00032     RETURN_ARRAYS_INCREMENT();  
00033   dvar_vector y;
00034   y=a*elem_prod(x, exp(-b*x));
00035 
00036   RETURN_ARRAYS_DECREMENT();  
00037     return (y);
00038 }
00046 dvar_vector Ricker(const dvector& x,  const dvar_vector& a,  const prevariable& b)
00047 {
00048     RETURN_ARRAYS_INCREMENT();  
00049   dvar_vector y;
00050   y=elem_prod(a, elem_prod(x, exp(-b*x)));
00051 
00052   RETURN_ARRAYS_DECREMENT();  
00053     return (y);
00054 }
00055 /*---------------------------------------------2nd variable is a vector*/
00063 dvar_vector Ricker(const dvector& x,  const prevariable& a,  const dvar_vector& b)
00064 {
00065     RETURN_ARRAYS_INCREMENT();  
00066   dvar_vector y;
00067   y=a*elem_prod(x, exp(-1.0*elem_prod(b, x)));
00068 
00069   RETURN_ARRAYS_DECREMENT();  
00070     return (y);
00071 }
00079 dvar_vector Ricker(const dvector& x,  const dvar_vector& a,  const dvar_vector& b)
00080 {
00081     RETURN_ARRAYS_INCREMENT();  
00082   dvar_vector y;
00083   y=elem_prod(a, elem_prod(x, exp(-1.0*elem_prod(b, x))));
00084 
00085   RETURN_ARRAYS_DECREMENT();  
00086     return (y);
00087 }
00088 /*---------------------------------------------2nd variable is a scalar in a random effects model*/
00089 /*----------------------1st varible contains random effects*/
00097 df1b2variable Ricker(const double& x,  const df1b2variable& a,  const df1b2variable& b)
00098 {
00099   df1b2variable y;
00100   y=a*x*exp(-b*x);
00101 
00102     return (y);
00103 }
00111 df1b2vector Ricker(const dvector& x,  const df1b2variable& a,  const df1b2variable& b)
00112 {
00113   df1b2vector y;
00114   y=a*elem_prod(x, exp(-b*x));
00115 
00116     return(y);
00117 }
00125 df1b2vector Ricker(const dvector& x,  const df1b2vector& a,  const df1b2variable& b)
00126 {
00127   df1b2vector y;
00128   y=elem_prod(a, elem_prod(x, exp(-b*x)));
00129 
00130     return(y);
00131 }
00132 
00133 /*---------------------------------------------2nd variable is a vector in a random effects model*/
00134 /*----------------------1st varible contains random effects*/
00142 df1b2vector Ricker(const dvector& x,  const df1b2variable& a,  const df1b2vector& b)
00143 {
00144   df1b2vector y;
00145   y=a*elem_prod(x, exp(-1.0*elem_prod(b, x)));
00146 
00147     return(y);
00148 }
00156 df1b2vector Ricker(const dvector& x,  const df1b2vector& a,  const df1b2vector& b)
00157 {
00158   df1b2vector y;
00159   y=elem_prod(a, elem_prod(x, exp(-1.0*elem_prod(b, x))));
00160 
00161     return(y);
00162 }
00163