X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=linearalgebra.h;h=7453f4ebd8b86ed20f530c2e1ba7989808361fb2;hb=6b32d112bb60e9f7eb6d4407a4eed4c49b67bced;hp=5819ea85d8deefba15ca1c45ccf03efd21c9321a;hpb=372fb21ea66ced432b109225851a1b80ef0491a3;p=mothur.git diff --git a/linearalgebra.h b/linearalgebra.h index 5819ea8..7453f4e 100644 --- a/linearalgebra.h +++ b/linearalgebra.h @@ -20,9 +20,12 @@ public: ~LinearAlgebra() {} vector > matrix_mult(vector >, vector >); + vector >transpose(vector >); void recenter(double, vector >, vector >&); - int tred2(vector >&, vector&, vector&); + //eigenvectors + int tred2(vector >&, vector&, vector&); int qtli(vector&, vector&, vector >&); + vector< vector > calculateEuclidianDistance(vector >&, int); //pass in axes and number of dimensions vector< vector > calculateEuclidianDistance(vector >&); //pass in axes vector > getObservedEuclideanDistance(vector >&); @@ -43,8 +46,10 @@ public: vector solveEquations(vector >, vector); vector solveEquations(vector >, vector); vector > getInverse(vector >); - - + double choose(double, double); + double normalvariate(double mu, double sigma); + vector< vector > lda(vector< vector >& a, vector groups, vector< vector >& means, bool&); //Linear discriminant analysis - a is [features][valuesFromGroups] groups indicates which group each sampling comes from. For example if groups = early, late, mid, early, early. a[0][0] = value for feature0 from groupEarly. + int svd(vector< vector >& a, vector& w, vector< vector >& v); //Singular value decomposition private: MothurOut* m; @@ -57,6 +62,7 @@ private: double gcf(double&, const double, const double, double&); double erfcc(double); double gammp(const double, const double); + double pnorm(double x); double ran0(int&); //for testing double ran1(int&); //for testing @@ -70,7 +76,6 @@ private: void ludcmp(vector >&, vector&, float&); void lubksb(vector >&, vector&, vector&); - };