]> git.donarmstrong.com Git - mothur.git/blobdiff - sharedthetayc.cpp
modified calculators to use doubles, added numotu and fontsize parameters to heatmap...
[mothur.git] / sharedthetayc.cpp
index ca066dd04bdb586a86cd5e6716daa949ac458734..4d8a5d91b67f5854b6a87b6df01dcdf93589fdba 100644 (file)
@@ -14,19 +14,19 @@ EstOutput ThetaYC::getValues(vector<SharedRAbundVector*> shared) {
        try {   
                data.resize(3,0.0000);
                
-               float Atotal = 0;
-               float Btotal = 0;
-               float thetaYC = 0;
-               float pi = 0;
-               float qi = 0;
-               float a = 0;
-               float b = 0;
-               float d = 0;
+               double Atotal = 0;
+               double Btotal = 0;
+               double thetaYC = 0;
+               double pi = 0;
+               double qi = 0;
+               double a = 0;
+               double b = 0;
+               double d = 0;
                
-               float sumPcubed = 0;
-               float sumQcubed = 0;
-               float sumPQsq = 0;
-               float sumPsqQ = 0;
+               double sumPcubed = 0;
+               double sumQcubed = 0;
+               double sumPQsq = 0;
+               double sumPsqQ = 0;
                
                //get the total values we need to calculate the theta denominator sums
                for (int i = 0; i < shared[0]->size(); i++) {
@@ -55,16 +55,16 @@ EstOutput ThetaYC::getValues(vector<SharedRAbundVector*> shared) {
                
                if (isnan(thetaYC) || isinf(thetaYC)) { thetaYC = 0; }
                
-               float varA = 4 / Atotal * (sumPcubed - a * a);
-               float varB = 4 / Btotal * (sumQcubed - b * b);
-               float varD = sumPQsq / Atotal + sumPsqQ / Btotal - d * d * (1/Atotal + 1/Btotal);
-               float covAD = 2 / Atotal * (sumPsqQ - a * d);
-               float covBD = 2 / Btotal * (sumPQsq - b* d);
+               double varA = 4 / Atotal * (sumPcubed - a * a);
+               double varB = 4 / Btotal * (sumQcubed - b * b);
+               double varD = sumPQsq / Atotal + sumPsqQ / Btotal - d * d * (1/Atotal + 1/Btotal);
+               double covAD = 2 / Atotal * (sumPsqQ - a * d);
+               double covBD = 2 / Btotal * (sumPQsq - b* d);
                
-               float varT = d * d * (varA + varB) / pow(a + b - d, (float)4.0) + pow(a+b, (float)2.0) * varD / pow(a+b-d, (float)4.0)
-                                               - 2.0 * (a + b) * d / pow(a + b - d, (float)4.0) * (covAD + covBD);
+               double varT = d * d * (varA + varB) / pow(a + b - d, (double)4.0) + pow(a+b, (double)2.0) * varD / pow(a+b-d, (double)4.0)
+                                               - 2.0 * (a + b) * d / pow(a + b - d, (double)4.0) * (covAD + covBD);
                
-               float ci = 1.95 * sqrt(varT);
+               double ci = 1.95 * sqrt(varT);
                
                data[0] = thetaYC;
                data[1] = thetaYC - ci;