Go to the documentation of this file.00001 #include "statsLib.h"
00002
00036 dvariable dlnorm( const prevariable& x, const double& mu, const double& std )
00037 {
00038
00039 if( std<=0 || x<=0 )
00040 {
00041 cerr<<"Standard deviation or the mean is less than or equal to zero in "
00042 "dlnorm( const dvariable& x, const double& mu, const double& std )\n";
00043 return 0;
00044 }
00045
00046 return 0.5*log(2.*M_PI)+log(std)+log(x)+square(log(x)-mu)/(2.*std*std);
00047 }
00048
00058 dvariable dlnorm( const prevariable& x, const prevariable& mu, const double& std )
00059 {
00060
00061 if( std<=0 || x<=0 )
00062 {
00063 cerr<<"Standard deviation or the mean is less than or equal to zero in "
00064 "dlnorm( const dvariable& x, const dvariable& mu, const double& std )\n";
00065 return 0;
00066 }
00067
00068 return 0.5*log(2.*M_PI)+log(std)+log(x)+square(log(x)-mu)/(2.*std*std);
00069 }
00070
00080 dvariable dlnorm( const prevariable& x, const prevariable& mu, const prevariable& std )
00081 {
00082
00083 if( std<=0 || x<=0 )
00084 {
00085 cerr<<"Standard deviation or the mean is less than or equal to zero in "
00086 "dlnorm( const dvariable& x, const dvariable& mu, const dvariable& std )\n";
00087 return 0;
00088 }
00089
00090 return 0.5*log(2.*M_PI)+log(std)+log(x)+square(log(x)-mu)/(2.*std*std);
00091 }
00092
00102 dvariable dlnorm( const dvar_vector& x, const double& mu, const double& std )
00103 {
00104
00105 if( std<=0 || min(x)<=0 )
00106 {
00107 cerr<<"Standard deviation or the mix(x) is less than or equal to zero in "
00108 "dlnorm( const dvar_vector& x, const double& mu, const double& std )\n";
00109 return 0;
00110 }
00111
00112 RETURN_ARRAYS_INCREMENT();
00113 long n=size_count(x);
00114 dvariable ss = norm2( log(x)-mu );
00115 dvariable t1 = n*(0.5*log(2*M_PI)+log(std));
00116 dvariable nloglike = t1 + sum(log(x)) + ss/(2.*std*std);
00117 RETURN_ARRAYS_DECREMENT();
00118 return nloglike;
00119 }
00120
00130 dvariable dlnorm( const dvar_vector& x, const prevariable& mu, const double& std )
00131 {
00132
00133 if( std<=0 || min(x)<=0 )
00134 {
00135 cerr<<"Standard deviation or the mix(x) is less than or equal to zero in "
00136 "dlnorm( const dvar_vector& x, const dvariable& mu, const double& std )\n";
00137 return 0;
00138 }
00139
00140 RETURN_ARRAYS_INCREMENT();
00141 long n=size_count(x);
00142 dvariable ss = norm2( log(x)-mu );
00143 dvariable t1 = n*(0.5*log(2*M_PI)+log(std));
00144 dvariable nloglike = t1 + sum(log(x)) + ss/(2.*std*std);
00145 RETURN_ARRAYS_DECREMENT();
00146 return nloglike;
00147 }
00148
00158 dvariable dlnorm( const dvar_vector& x, const prevariable& mu, const prevariable& std )
00159 {
00160
00161 if( std<=0 || min(x)<=0 )
00162 {
00163 cerr<<"Standard deviation or the mix(x) is less than or equal to zero in "
00164 "dlnorm( const dvar_vector& x, const dvariable& mu, const dvariable& std )\n";
00165 return 0;
00166 }
00167
00168 RETURN_ARRAYS_INCREMENT();
00169 long n=size_count(x);
00170 dvariable ss = norm2( log(x)-mu );
00171 dvariable t1 = n*(0.5*log(2*M_PI)+log(std));
00172 dvariable nloglike = t1 + sum(log(x)) + ss/(2.*std*std);
00173 RETURN_ARRAYS_DECREMENT();
00174 return nloglike;
00175 }
00176