File: diversityutils.hpp

package info (click to toggle)
mothur 1.48.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 13,684 kB
  • sloc: cpp: 161,854; makefile: 122; sh: 31
file content (82 lines) | stat: -rw-r--r-- 2,722 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
//
//  diversityutils.hpp
//  Mothur
//
//  Created by Sarah Westcott on 4/11/19.
//  Copyright © 2019 Schloss Lab. All rights reserved.
//

#ifndef diversityutils_hpp
#define diversityutils_hpp

#define HI_PRECISION 1.0e-12
#define LO_PRECISION 1.0e-7

#define V_MULT          25.0
#define PENALTY           1.0e20
#define SLICE      10


#include "diversitycalc.h"


/***********************************************************************/

class DiversityUtils   {
    
public:
    DiversityUtils(string met){ m = MothurOut::getInstance(); method = met; }
    
    #ifdef USE_GSL
    
    double logLikelihood(int n, double dAlpha, double dBeta);
    double logLikelihood(int n, double dAlpha, double dBeta, double);
    bool bessel(double* pdResult, int n, double dAlpha, double dBeta);
    double sd(int n, double dAlpha, double dBeta);
    bool bessel(double* pdResult, int n, double dAlpha, double dBeta, double);
    double sd(int n, double dAlpha, double dBeta, double);
    int minimiseSimplex(gsl_vector* ptX, size_t nP, void* pvData, double (*f)(const gsl_vector*, void* params), double, double, double);
    vector<double> mcmc(t_Params *ptParams, t_Data *ptData, gsl_vector* ptX, void* f (void * pvInitMetro));
    vector<double> outputResults(gsl_vector *ptX, t_Data *ptData, double (*f)(const gsl_vector*, void* params));
    void getProposal(gsl_rng *ptGSLRNG, gsl_vector *ptXDash, gsl_vector *ptX, int* pnSDash, int nS, t_Params *ptParams);
    int solveF(double x_lo, double x_hi, void* params, double tol, double *xsolve);
    int solveF(double x_lo, double x_hi, double (*f)(double, void*), void* params, double tol, double *xsolve);
    double logLikelihoodRampal(int n, double dMDash, double dV);
    double logLikelihoodQuad(int n, double dMDash, double dV);
    double logLikelihoodRampal(int n, double dMDash, double dV, double dNu);
    double logLikelihoodQuad(int n, double dMDash, double dV, double dNu);
    double calcMu(void *ptLNParams);
    int fitSigma(vector<double>, vector<double>, int fi, t_Params *ptParams, t_Data *ptData, gsl_vector* ptX, void* f (void * pvInitMetro));
    
    #endif
    
    double f2X(double x, double dA, double dB, double dNDash);
    double fX(double x, double dA, double dB, double dNDash);
    double chao(t_Data *ptData);
    double logStirlingsGamma(double dZ);
    
    void loadAbundance(t_Data *ptData, SAbundVector* rank);
    void freeAbundance(t_Data *ptData);
    
    
    
    
    MothurOut* m;
    
private:
    
    Utils util;
    
    string method;
    
    acceptRatioPos findBest(vector<double> accept);
    
    
    
};

/***********************************************************************/



#endif /* diversityutils_hpp */