]> git.donarmstrong.com Git - mothur.git/blob - efron.cpp
This contains Pat's bug fixes and updates. It represents mothur v.1.3.0
[mothur.git] / efron.cpp
1 /*
2  *  efron.cpp
3  *  Mothur
4  *
5  *  Created by Thomas Ryabin on 5/13/09.
6  *  Copyright 2009Schloss Lab UMASS Amherst. All rights reserved.
7  *
8  */
9
10 #include "efron.h"
11 #include <math.h>
12
13 /***********************************************************************/
14 EstOutput Efron::getValues(SAbundVector* rank){
15
16         try {
17                 data.resize(1,0);
18                 
19                 double n = (double)rank->getNumSeqs();
20                 if(m > n || m == 0) {   m = n;  }
21                 
22                 double sum = 0;
23                 for(int i = 1; i < rank->size(); i++){
24                         sum += pow(-1., i+1) * pow(((double)m / n), i) * (double)(rank->get(i));
25                 }
26                 data[0] = sum;
27                 
28                 return data;
29         }
30         catch(exception& e) {
31                 cout << "Standard Error: " << e.what() << " has occurred in the Coverage class Function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
32                 exit(1);
33         }
34         catch(...) {
35                 cout << "An unknown error has occurred in the Coverage class function getValues. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
36                 exit(1);
37         }       
38 };
39
40
41 /***********************************************************************/