File: calculator.cpp

package info (click to toggle)
mothur 1.24.1-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 7,868 kB
  • sloc: cpp: 110,948; ansic: 2,037; fortran: 665; makefile: 74; sh: 59
file content (106 lines) | stat: -rw-r--r-- 3,741 bytes parent folder | download | duplicates (3)
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
104
105
106
/*
 *  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];
	
}

/***********************************************************************/