Skip to content
Snippets Groups Projects
Commit fd078afb authored by Stephen Smith's avatar Stephen Smith
Browse files

*** empty log message ***

parent 35c098a9
No related branches found
No related tags found
No related merge requests found
...@@ -56,11 +56,11 @@ ReturnMatrix normrnd(const int dim1, const int dim2, const float mu, const float ...@@ -56,11 +56,11 @@ ReturnMatrix normrnd(const int dim1, const int dim2, const float mu, const float
return res; return res;
} }
ReturnMatrix normpdf(const RowVector& vals, const float mu, const float sigma) ReturnMatrix normpdf(const RowVector& vals, const float mu, const float var)
{ {
RowVector res(vals); RowVector res(vals);
for (int mc=1; mc<=res.Ncols(); mc++){ for (int mc=1; mc<=res.Ncols(); mc++){
res(mc) = std::exp(-0.5*(std::pow(vals(mc)-mu,2)/sigma))*std::pow(2*M_PI*sigma,-0.5); res(mc) = std::exp(-0.5*(std::pow(vals(mc)-mu,2)/var))*std::pow(2*M_PI*var,-0.5);
} }
res.Release(); res.Release();
...@@ -80,13 +80,13 @@ ReturnMatrix normcdf(const RowVector& vals, const float mu, const float var) ...@@ -80,13 +80,13 @@ ReturnMatrix normcdf(const RowVector& vals, const float mu, const float var)
return res; return res;
} }
ReturnMatrix gammacdf(const RowVector& vals, const float mu, const float sigma) ReturnMatrix gammacdf(const RowVector& vals, const float mu, const float var)
{ {
RowVector res(vals); RowVector res(vals);
res=0; res=0;
if((mu>0)&&(sigma>0)){ if((mu>0)&&(var>0)){
float b = std::pow(mu,2)/sigma; float b = std::pow(mu,2)/var;
float a = mu/sigma; float a = mu/var;
for (int mc=1; mc<=res.Ncols(); mc++){ for (int mc=1; mc<=res.Ncols(); mc++){
if(vals(mc)>0) if(vals(mc)>0)
res(mc) = gdtr(a,b,vals(mc)); res(mc) = gdtr(a,b,vals(mc));
...@@ -96,13 +96,13 @@ ReturnMatrix gammacdf(const RowVector& vals, const float mu, const float sigma) ...@@ -96,13 +96,13 @@ ReturnMatrix gammacdf(const RowVector& vals, const float mu, const float sigma)
return res; return res;
} }
ReturnMatrix gammapdf(const RowVector& vals, const float mu, const float sigma) ReturnMatrix gammapdf(const RowVector& vals, const float mu, const float var)
{ {
RowVector res(vals); RowVector res(vals);
res=0; res=0;
if((mu>0)&&(sigma>0.00001)){ if((mu>0)&&(var>0.00001)){
float a = std::pow(mu,2)/sigma; float a = std::pow(mu,2)/var;
float b = mu/sigma; float b = mu/var;
float c = lgam(a); float c = lgam(a);
if(std::abs(c) < 150){ if(std::abs(c) < 150){
for (int mc=1; mc<=res.Ncols(); mc++){ for (int mc=1; mc<=res.Ncols(); mc++){
...@@ -119,12 +119,12 @@ ReturnMatrix gammapdf(const RowVector& vals, const float mu, const float sigma) ...@@ -119,12 +119,12 @@ ReturnMatrix gammapdf(const RowVector& vals, const float mu, const float sigma)
} }
ReturnMatrix normpdf(const RowVector& vals, const RowVector& mu, const RowVector& sigma) ReturnMatrix normpdf(const RowVector& vals, const RowVector& mu, const RowVector& var)
{ {
Matrix res(mu.Ncols(),vals.Ncols()); Matrix res(mu.Ncols(),vals.Ncols());
for (int mc=1; mc<=res.Ncols(); mc++){ for (int mc=1; mc<=res.Ncols(); mc++){
for (int mr=1; mr<=res.Nrows(); mr++){ for (int mr=1; mr<=res.Nrows(); mr++){
res(mr,mc) = std::exp(-0.5*(std::pow(vals(mc)-mu(mr),2)/sigma(mr)))*std::pow(2*M_PI*sigma(mr),-0.5); res(mr,mc) = std::exp(-0.5*(std::pow(vals(mc)-mu(mr),2)/var(mr)))*std::pow(2*M_PI*var(mr),-0.5);
} }
} }
......
...@@ -30,16 +30,16 @@ namespace MISCMATHS { ...@@ -30,16 +30,16 @@ namespace MISCMATHS {
ReturnMatrix mvnrnd(const RowVector& mu, const SymmetricMatrix& covar, int nsamp = 1); ReturnMatrix mvnrnd(const RowVector& mu, const SymmetricMatrix& covar, int nsamp = 1);
ReturnMatrix normpdf(const RowVector& vals, const float mu = 0, const float sigma = 1); ReturnMatrix normpdf(const RowVector& vals, const float mu = 0, const float var = 1);
ReturnMatrix normpdf(const RowVector& vals, const RowVector& mus, ReturnMatrix normpdf(const RowVector& vals, const RowVector& mus,
const RowVector& sigmas); const RowVector& vars);
ReturnMatrix normcdf(const RowVector& vals, const float mu = 0, const float sigma = 1); ReturnMatrix normcdf(const RowVector& vals, const float mu = 0, const float var = 1);
ReturnMatrix gammapdf(const RowVector& vals, const float mu = 0, const float sigma = 1); ReturnMatrix gammapdf(const RowVector& vals, const float mu = 0, const float var = 1);
ReturnMatrix gammacdf(const RowVector& vals, const float mu = 0, const float sigma = 1); ReturnMatrix gammacdf(const RowVector& vals, const float mu = 0, const float var = 1);
class Mvnormrandm class Mvnormrandm
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment