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