]> git.donarmstrong.com Git - mothur.git/blob - calculator.cpp
sffinfo bug with flow grams right index when clipQualRight=0
[mothur.git] / calculator.cpp
1 /*
2  *  calculator.cpp
3  *  Dotur
4  *
5  *  Created by Sarah Westcott on 11/18/08.
6  *  Copyright 2008 Schloss Lab UMASS Amherst. All rights reserved.
7  *
8  */
9
10 #include "calculator.h"
11
12 /***********************************************************************/
13 int VecCalc::sumElements(vector<int> vec){
14                 return sumElements(vec,0);
15 }
16 /***********************************************************************/
17 int VecCalc::sumElements(vector<int> vec, int index){
18         
19                 int sum = 0;
20                 for(int i = index; i < vec.size(); i++)
21                         sum += vec.at(i);
22                 return sum;
23         
24 }
25
26 /***********************************************************************/
27 double VecCalc::sumElements(vector<double> vec){
28                 double sum = 0;
29                 for(int i = 0; i < vec.size(); i++)
30                         sum += vec.at(i);
31                 return sum;
32         
33 }
34 /***********************************************************************/
35 double VecCalc::sumElements(vector<double> vec, int index){
36         
37                 double sum = 0;
38                 for(int i = index; i < vec.size(); i++)
39                         sum += vec.at(i);
40                 return sum;
41         
42 }
43 /***********************************************************************/
44 int VecCalc::numNZ(vector<int> vec){
45         
46                 int numNZ = 0;
47                 for(int i = 0; i < vec.size(); i++)
48                         if(vec.at(i) != 0)
49                                 numNZ++;
50                 return numNZ;
51         
52 }
53 /***********************************************************************/
54 double VecCalc::numNZ(vector<double> vec){
55         
56                 double numNZ = 0;
57                 for(int i = 0; i < vec.size(); i++)
58                         if(vec.at(i) != 0)
59                                 numNZ++;
60                 return numNZ;
61         }
62 /***********************************************************************/
63 double TDTable::getConfLimit(int row, int col) //Rows are the degrees of freedom
64 {                         
65                 //Found on http://www.vgtu.lt/leidiniai/elektroniniai/Probability.pdf/Table%203.pdf
66
67                 //Confidence Level        .90    .95     .975     .99    .995     .999    .9995
68                 double values[30][7] = {{3.078, 6.314,  12.706, 31.821, 63.656, 318.289, 636.578},
69                                                         {1.886, 2.920,  4.303,  6.965,  9.925,  22.328, 31.600},
70                                                             {1.638,     2.353,  3.182,  4.541,  5.841,  10.214, 12.924},
71                                                             {1.533,     2.132,  2.776,  3.747,  4.604,  7.173,  8.610},
72                                                                 {1.476, 2.015,  2.571,  3.365,  4.032,  5.894,  6.869},
73                                                                 {1.440, 1.943,  2.447,  3.143,  3.707,  5.208,  5.959},
74                                                                 {1.415, 1.895,  2.365,  2.998,  3.499,  4.785,  5.408},
75                                                                 {1.397, 1.860,  2.306,  2.896,  3.355,  4.501,  5.041},
76                                                                 {1.383, 1.833,  2.262,  2.821,  3.250,  4.297,  4.781},
77                                                                 {1.372, 1.812,  2.228,  2.764,  3.169,  4.144,  4.587},
78                                                                 {1.363, 1.796,  2.201,  2.718,  3.106,  4.025,  4.437},
79                                                                 {1.356, 1.782,  2.179,  2.681,  3.055,  3.930,  4.318},
80                                                                 {1.350, 1.771,  2.160,  2.650,  3.012,  3.852,  4.221},
81                                                                 {1.345, 1.761,  2.145,  2.624,  2.977,  3.787,  4.140},
82                                                                 {1.341, 1.753,  2.131,  2.602,  2.947,  3.733,  4.073},
83                                                                 {1.337, 1.746,  2.120,  2.583,  2.921,  3.686,  4.015},
84                                                                 {1.333, 1.740,  2.110,  2.567,  2.898,  3.646,  3.965},
85                                                                 {1.330, 1.734,  2.101,  2.552,  2.878,  3.610,  3.922},
86                                                                 {1.328, 1.729,  2.093,  2.539,  2.861,  3.579,  3.883},
87                                                                 {1.325, 1.725,  2.086,  2.528,  2.845,  3.552,  3.850},
88                                                                 {1.323, 1.721,  2.080,  2.518,  2.831,  3.527,  3.819},
89                                                                 {1.321, 1.717,  2.074,  2.508,  2.819,  3.505,  3.792},
90                                                                 {1.319, 1.714,  2.069,  2.500,  2.807,  3.485,  3.768},
91                                                                 {1.318, 1.711,  2.064,  2.492,  2.797,  3.467,  3.745},
92                                                                 {1.316, 1.708,  2.060,  2.485,  2.787,  3.450,  3.725},
93                                                                 {1.315, 1.706,  2.056,  2.479,  2.779,  3.435,  3.707},
94                                                                 {1.314, 1.703,  2.052,  2.473,  2.771,  3.421,  3.689},
95                                                                 {1.313, 1.701,  2.048,  2.467,  2.763,  3.408,  3.674},
96                                                                 {1.311, 1.699,  2.045,  2.462,  2.756,  3.396,  3.660},
97                                                                 {1.310, 1.697,  2.042,  2.457,  2.750,  3.385,  3.646}};
98                                                                 
99                 return values[row][col];
100         
101 }
102
103 /***********************************************************************/
104
105
106