double sumPsqQ = 0;
//get the total values we need to calculate the theta denominator sums
- for (int i = 0; i < shared[0]->size(); i++) {
+ for (int i = 0; i < shared[0]->getNumBins(); i++) {
//store in temps to avoid multiple repetitive function calls
- Atotal += (float)shared[0]->getAbundance(i);
- Btotal += (float)shared[1]->getAbundance(i);
+ Atotal += (double)shared[0]->getAbundance(i);
+ Btotal += (double)shared[1]->getAbundance(i);
}
//calculate the theta denominator sums
- for (int j = 0; j < shared[0]->size(); j++) {
+ for (int j = 0; j < shared[0]->getNumBins(); j++) {
//store in temps to avoid multiple repetitive function calls
pi = shared[0]->getAbundance(j) / Atotal;
qi = shared[1]->getAbundance(j) / Btotal;
if (isnan(data[1]) || isinf(data[1])) { data[1] = 0; }
if (isnan(data[2]) || isinf(data[2])) { data[2] = 0; }
+ data[0] = 1.0 - data[0];
+ double hold = data[1];
+ data[1] = 1.0 - data[2];
+ data[2] = 1.0 - hold;
+
return data;
}
catch(exception& e) {