X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=efron.cpp;h=7e1cba8ce055b9c47042806839ea80236f10b3d4;hp=aeeb4c2f33e79102a77d891abd9961c9e616992e;hb=050a3ff02473a3d4c0980964e1a9ebe52e55d6b8;hpb=b22853b5cfbf5c47949ad2a084f2fad88b2e4be4 diff --git a/efron.cpp b/efron.cpp index aeeb4c2..7e1cba8 100644 --- a/efron.cpp +++ b/efron.cpp @@ -8,7 +8,6 @@ */ #include "efron.h" -#include /***********************************************************************/ EstOutput Efron::getValues(SAbundVector* rank){ @@ -17,29 +16,21 @@ EstOutput Efron::getValues(SAbundVector* rank){ data.resize(1,0); double n = (double)rank->getNumSeqs(); - if(m > n) { - cout << "Error in the 'efron' calculator. 'size' must be less than the length of the smallest sabund vector.\n"; - data[0] = 0; - return data; - } + if(f > n || f == 0) { f = n; } double sum = 0; - for(int i = 1; i < rank->size(); i++) - sum += pow(-1, (double)(i+1)) * pow(((double)m / n), i) * (double)(rank->get(i)); - + for(int i = 1; i < rank->size(); i++){ + sum += pow(-1., i+1) * pow(((double)f / n), i) * (double)(rank->get(i)); + } data[0] = sum; return data; } catch(exception& e) { - cout << "Standard Error: " << e.what() << " has occurred in the Coverage class Function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; + m->errorOut(e, "Efron", "getValues"); exit(1); } - catch(...) { - cout << "An unknown error has occurred in the Coverage class function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n"; - exit(1); - } -}; +} /***********************************************************************/