X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=chao1.cpp;fp=chao1.cpp;h=590c20eeec65215f087bf36fd51593624e02ce02;hb=71b2121662daae3f9044252887d1c16eeddd85bb;hp=24521f570e4124a0efa56d1d55c75ed510770728;hpb=5a9f3cce3e2e053c249e3e97507ce180f0854d76;p=mothur.git diff --git a/chao1.cpp b/chao1.cpp index 24521f5..590c20e 100644 --- a/chao1.cpp +++ b/chao1.cpp @@ -15,9 +15,19 @@ EstOutput Chao1::getValues(SAbundVector* rank){ data.resize(3,0); double sobs = (double)rank->getNumBins(); - - double singles = (double)rank->get(1); - double doubles = (double)rank->get(2); + + //this is a modification do to a vector fill error that occurs when an empty sharedRabund creates a sabund + //in that case there is no 1 0r 2. + double singles; + if (rank->size() > 1) { + singles = (double)rank->get(1); + }else{ singles = 0.0; } + + double doubles; + if (rank->size() > 2) { + doubles = (double)rank->get(2); + }else{ doubles = 0.0; } + double chaovar = 0.0000; //cout << "singles = " << singles << " doubles = " << doubles << " sobs = " << sobs << endl; double chao = sobs + singles*(singles-1)/(2*(doubles+1));