forked from whuang08/TreeScaper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
wDimEst.h
118 lines (93 loc) · 2.78 KB
/
wDimEst.h
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//##########################################################################
//# This software is part of the Treescaper i
//# -- Version 0.1
//# Copyright (C) 2010 Wen Huang
//#
//# This program is free software; you can redistribute it and/or
//# modify it under the terms of the GNU General Public License
//# as published by the Free Software Foundation; either version 2
//# of the License, or (at your option) any later version.
//#
//# This program is distributed in the hope that it will be useful,
//# but WITHOUT ANY WARRANTY; without even the implied warranty of
//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//# GNU General Public License for more details.
//# http://www.gnu.org/copyleft/gpl.html
//##########################################################################
// dimension estimator head file
// April/20/2010
// whuang
#ifndef WDIMEST_H
#define WDIMEST_H
#include "wdef.h"
#include "warray.cpp"
#include "wstring.h"
#include "wfile.h"
#include "wmatrix.cpp"
#ifdef COMMAND_LINE_VERSION
#include "wmix.h"
#include "wimport_form.h"
#include "wmapping.cpp"
#endif
struct dimest_parameters{
int cor_n;
int nn_n;
int mle_n;
int distance_file_type;
};
class DimEst{
public:
DimEst(){};
#ifdef _MAC
DimEst(String filename, String meth, String dataform, String para_fname)
{
double **dist = NULL;
initial_DimEst(filename, dist, 0, 0, meth, dataform, para_fname);
};
#endif
#ifdef _WINDOWS
DimEst(String filename, String meth, String dataform, String para_fname)
{
double **dist = NULL;
initial_DimEst(filename, dist, 0, 0, meth, dataform, para_fname);
};
#endif
#ifdef _LINUX
DimEst(String filename, String meth, String dataform, String para_fname)
{
double **dist = NULL;
initial_DimEst(filename, dist, 0, 0, meth, dataform, para_fname);
};
#endif
#ifdef COMMAND_LINE_VERSION
DimEst(String filename, String meth, String dataform, String para_fname)
{
initial_DimEst(filename, method, dataform, para_fname);
}
void initial_DimEst(String filename, String meth, String dataform, String para_fname);
void init_parameters(String para_filename);
#endif
void initial_DimEst(String filename, double **dist, int sizeinput, int diminput, String meth, String dataform, String para_fname);
void Compute_Dim();
void Compute_Cor_Dim();
void Compute_NN_Dim();
void Compute_NN_Dist(Matrix<double> &NND);
void Compute_Eig_Dim();
void Compute_MLE_Dim();
void Compute_MLE_Mk(Matrix<double> &Mk);
void output_to_files();
String makefilename(String output);
double Cor_Dim_C(double r);
dimest_parameters parameters;
private:
Matrix<double> D;
Matrix<double> X;
Matrix<double> Dim_C;
Matrix<double> Dim_D;
String method;
String D_prefname;
String D_postfname;
int num_r;
int size;
};
#endif