* Copyright 2008 Patrick D. Schloss. All rights resesaved.
*
*/
-using namespace std;
#include "sabundvector.hpp"
-#include "utilities.hpp"
+#include "calculator.h"
/***********************************************************************/
-SAbundVector::SAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0){};
+SAbundVector::SAbundVector() : DataVector(), maxRank(0), numBins(0), numSeqs(0){}
/***********************************************************************/
-SAbundVector::SAbundVector(int size) : DataVector(), data(size, 0), maxRank(0), numBins(0), numSeqs(0) {};
+SAbundVector::SAbundVector(int size) : DataVector(), data(size, 0), maxRank(0), numBins(0), numSeqs(0) {}
/***********************************************************************/
SAbundVector::SAbundVector(string id, vector<int> sav) : DataVector(id), data(sav) {
try {
-
for(int i=0;i<sav.size();i++){
if(data[i] != 0){ maxRank = i; }
numSeqs += i*data[i];
}
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SAbundVector class Function SAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SAbundVector", "SAbundVector");
exit(1);
}
- catch(...) {
- cout << "An unknown error has occurred in the SAbundVector class function SAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+}
+
+/***********************************************************************/
+
+SAbundVector::SAbundVector(vector <int> dataVec, int mr, int nb, int ns) {
+ try {
+ data = dataVec;
+ maxRank = mr;
+ numBins = nb;
+ numSeqs = ns;
+ }
+ catch(exception& e) {
+ m->errorOut(e, "SAbundVector", "SAbundVector");
exit(1);
}
}
-
/***********************************************************************/
SAbundVector::SAbundVector(ifstream& f): DataVector(), maxRank(0), numBins(0), numSeqs(0) {
for(int i=1;i<=hold;i++){
f >> inputData;
+
set(i, inputData);
}
+
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SAbundVector class Function SAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
- catch(...) {
- cout << "An unknown error has occurred in the SAbundVector class function SAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SAbundVector", "SAbundVector");
exit(1);
}
}
+
/***********************************************************************/
void SAbundVector::set(int sabund, int abundance){
if(sabund > maxRank) { maxRank = sabund; }
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SAbundVector class Function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SAbundVector", "set");
exit(1);
}
- catch(...) {
- cout << "An unknown error has occurred in the SAbundVector class function set. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
}
+
/***********************************************************************/
int SAbundVector::get(int index){
numSeqs += (maxRank * abundance);
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SAbundVector class Function push_back. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SAbundVector", "push_back");
exit(1);
}
- catch(...) {
- cout << "An unknown error has occurred in the SAbundVector class function push_back. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
+}
+/***********************************************************************/
+
+void SAbundVector::quicksort(){
+ sort(data.rbegin(), data.rend());
+}
+
+/***********************************************************************/
+
+int SAbundVector::sum(){
+ VecCalc vecCalc;
+ return vecCalc.sumElements(data);
}
/***********************************************************************/
output << endl;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SAbundVector class Function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SAbundVector", "print");
exit(1);
}
- catch(...) {
- cout << "An unknown error has occurred in the SAbundVector class function print. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
}
/**********************************************************************/
try {
RAbundVector rav;
- for(int i=1;i<=data.size();i++){
+ for(int i=1;i < data.size();i++){
for(int j=0;j<data[i];j++){
rav.push_back(i);
}
}
sort(rav.rbegin(), rav.rend());
-
+
rav.setLabel(label);
return rav;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SAbundVector class Function getRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SAbundVector", "getRAbundVector");
exit(1);
}
- catch(...) {
- cout << "An unknown error has occurred in the SAbundVector class function getRAbundVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
}
/***********************************************************************/
return ov;
}
catch(exception& e) {
- cout << "Standard Error: " << e.what() << " has occurred in the SAbundVector class Function getOrderVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+ m->errorOut(e, "SAbundVector", "getOrderVector");
exit(1);
}
- catch(...) {
- cout << "An unknown error has occurred in the SAbundVector class function getOrderVector. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
- exit(1);
- }
}
/***********************************************************************/