#ifndef AVERAGE_H
#define AVERAGE_H
-
+//test
#include "mothur.h"
#include "cluster.hpp"
#include "rabundvector.hpp"
-#include "sparsematrix.hpp"
+#include "sparsedistancematrix.h"
/* This class implements the average UPGMA, average neighbor clustering algorithm */
/***********************************************************************/
-AverageLinkage::AverageLinkage(RAbundVector* rav, ListVector* lv, SparseMatrix* dm, float c) :
- Cluster(rav, lv, dm, c)
+AverageLinkage::AverageLinkage(RAbundVector* rav, ListVector* lv, SparseDistanceMatrix* dm, float c, string s) :
+Cluster(rav, lv, dm, c, s)
{
saveRow = -1;
saveCol = -1;
/***********************************************************************/
//This function updates the distance based on the average linkage method.
-bool AverageLinkage::updateDistance(MatData& colCell, MatData& rowCell) {
+bool AverageLinkage::updateDistance(PDistCell& colCell, PDistCell& rowCell) {
try {
if ((saveRow != smallRow) || (saveCol != smallCol)) {
rowBin = rabund->get(smallRow);
saveRow = smallRow;
saveCol = smallCol;
}
-
- colCell->dist = (colBin * colCell->dist + rowBin * rowCell->dist) / totalBin;
-
+ //cout << "colcell.dist = " << colCell.dist << '\t' << smallRow << '\t' << smallCol << '\t' << rowCell.dist << endl;
+ colCell.dist = (colBin * colCell.dist + rowBin * rowCell.dist) / totalBin;
+
return(true);
}
catch(exception& e) {
- errorOut(e, "AverageLinkage", "updateDistance");
+ m->errorOut(e, "AverageLinkage", "updateDistance");
exit(1);
}
}