+ vector<double> rankVectorA(savA.getMaxRank()+1, 0);
+ int currentRankA = 0;
+ for(int i=savA.getMaxRank();i>0;i--){
+ int numWithAbundanceI = savA.get(i);
+
+ if(numWithAbundanceI > 1){ rankVectorA[i] = (currentRankA + 1 + currentRankA + numWithAbundanceI) / 2.0; }
+ else { rankVectorA[i] = currentRankA+numWithAbundanceI; }
+ currentRankA += numWithAbundanceI;
+ }
+ rankVectorA[0] = (numOTUS + currentRankA + 1) / 2.0;
+
+
+ vector<double> rankVectorB(savB.getMaxRank()+1, 0);
+ int currentRankB = 0;
+ for(int i=savB.getMaxRank();i>0;i--){
+ int numWithAbundanceI = savB.get(i);