using namespace std;
-#include <vector>
-#include <cmath>
-#include <iostream>
-#include <fstream>
-#include <math.h>
-#include <string>
-#include <map>
-#include <algorithm>
-#include "utilities.hpp"
+#include "mothur.h"
#include "sabundvector.hpp"
#include "sharedsabundvector.h"
#include "rabundvector.hpp"
public:
Calculator(){};
- Calculator(string n, int c) : name(n), cols(c) {};
+ Calculator(string n, int c, bool m) : name(n), cols(c), multiple(m) {};
virtual EstOutput getValues(SAbundVector*) = 0;
- virtual EstOutput getValues(SharedRAbundVector* shared1, SharedRAbundVector* shared2) = 0;
+ virtual EstOutput getValues(vector<SharedRAbundVector*>) = 0;
virtual void print(ostream& f) { f.setf(ios::fixed, ios::floatfield); f.setf(ios::showpoint);
f << data[0]; for(int i=1;i<data.size();i++){ f << '\t' << data[i]; }}
virtual string getName() { return name; }
virtual int getCols() { return cols; }
+ virtual bool getMultiple() { return multiple; }
protected:
EstOutput data;
string name;
int cols;
+ bool multiple;
};
{
// The methods seen in the order here is how they are ordered throughout the class.
public:
+ VecCalc(){};
void printElements(vector<double>); //This prints the values of the vector on one line with a space between each value.
void printElements(vector<string>); //This prints the values of the vector on one line with a space between each value.
int findString(vector<string>, string);//This returns the index of the given string in the given <string> vector, if the string does not exist in the vector it returns -1.
double mean(vector<double>); //This returns the mean value of the vector.
double stError(vector<double>); //This returns the standard error of the vector.
+ int sumElements(vector<int>, int);
+ int sumElements(vector<int>);
double sumElements(vector<double>); //This returns the sum of all the values in the vector.
double sumElements(vector<double>, int); //This returns the sum of all the values in the vector excluding those whose index is before the given index.
double findMax(vector<double>); //This returns the maximum value in the vector.
+ int numNZ(vector<int>); //This returns the number of non-zero values in the vector.
double numNZ(vector<double>); //This returns the number of non-zero values in the vector.
double numPos(vector<double>); //This returns the number of positive values in the vector.
double findMaxDiff(vector<double>, vector<double>); //This returns the absolute value of the maximum difference between the two vectors.
vector<string> getSData(char[]);//This takes a file name as a parameter and reads all of the data in the file into a <string> vector.
};
-/**************************************************************************************************/
-/*This Class contains methods that return the B Diverstiy of two sets
-of data. The four methods are the Whittaker's measure, the Marczewski-Stainhaus distance,
-the Sorensen quantitative index, and the Morisita-Horn index.
-The main method takes a number of columns of data and performs all 4 methods on each
-combination of columns. It prints a table for every method that shows the B Diverstiy for
-each combination. It also calculates the overall diversity for Whittaker's measure and
-the Marczewski-Steinhaus distance.*/
-
-
-class BDiversity
-{
- public:
- void doBD(vector<double>, double);//Main method
- double getWhitt(vector<double>,vector<double>);//Whittacker's measure
- double getMS(vector<double>, vector<double>);//Marczewski-Stainhaus distance
- double getSor(vector<double>, vector<double>);//Sorensen quantitative index
- double getMor(vector<double>, vector<double>);//Morisita-Horn index
- void printD(vector<vector<double> >, int);//This prints a table that represents the given 2D vector, the second paramter specifies which method is to be used (1 for Whitt, 2 for MS, 3 for Sor, and 4 for Mor)
-};
-
/**************************************************************************************************/
/*This Class is similar to the GeometricSeries.h class. It calculates
It prints the D-Statistic and the critical values for the Kolmogorov-Smirnov
1-sample test at the 95% confidence interval.*/
-class GeometricSeries
+/*class GeometricSeries
{
public:
void doGeomTest(vector<double>);
-};
+};*/
/**************************************************************************************************/
//This Class calculates the jackknifed estimate of the data and
public:
void doKSTest(vector<double>, vector<double>);
};
-/**************************************************************************************************/
-/*This Class calculates the Log Series Distribution for the data.
-It then generates a D-Statistic and prints the D-Statistic and
-the critical values for the Kolmogorov-Smirnov 1 sample test.*/
-
-class LogSD
-{
- public:
- void doLogSD(vector<double>, vector<double>);
-};
/**************************************************************************************************/
//This Class calculates and prints the Q-Statistic for the data.
double getConfLimit(int,int);
};
+/**************************************************************************************************/
+//This Class stores the table of the confidence limits of the One-Sample Kolmogorov-Smirnov Test.
+class KOSTable
+{
+ public:
+ double getConfLimit(int);
+};
+
/**************************************************************************************************/
/*This Class calculates the truncated lognormal for the data.
It then prints the D-Statistic and the critical values for the