-
Notifications
You must be signed in to change notification settings - Fork 0
/
pln2_weights.c
155 lines (151 loc) · 4.82 KB
/
pln2_weights.c
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
typedef struct PlnWeights pln2_t;
void init_memory_pln2(pln2_t *s) {
s->clusterCenters = (double**) malloc(sizeof(double*)*1);
s->clusterCenters[0] = (double*) malloc(sizeof(double)*5);
s->R = (double***) malloc(sizeof(double**)*1);
s->R[0] = (double**) malloc(sizeof(double*)*6);
s->R[0][0] = (double*) malloc(sizeof(double)*6);
s->R[0][1] = (double*) malloc(sizeof(double)*6);
s->R[0][2] = (double*) malloc(sizeof(double)*6);
s->R[0][3] = (double*) malloc(sizeof(double)*6);
s->R[0][4] = (double*) malloc(sizeof(double)*6);
s->R[0][5] = (double*) malloc(sizeof(double)*6);
s->C = (double***) malloc(sizeof(double**)*1);
s->C[0] = (double**) malloc(sizeof(double*)*2);
s->C[0][0] = (double*) malloc(sizeof(double)*6);
s->C[0][1] = (double*) malloc(sizeof(double)*6);
s->Et = (double**) malloc(sizeof(double*)*1);
s->Et[0] = (double*) malloc(sizeof(double)*2);
s->W = (double***) malloc(sizeof(double**)*1);
s->W[0] = (double**) malloc(sizeof(double*)*2);
s->W[0][0] = (double*) malloc(sizeof(double)*6);
s->W[0][1] = (double*) malloc(sizeof(double)*6);
s->lambda = (double*) malloc(sizeof(double)*1);
s->inputMeans = (double*) malloc(sizeof(double)*5);
s->inputStd = (double*) malloc(sizeof(double)*5);
s->distanceMeasure = (double*) malloc(sizeof(double)*5);
s->Nv = (int*) malloc(sizeof(int)*3);
}
void free_memory_pln2(pln2_t *s) {
free(s->clusterCenters[0]);
free(s->clusterCenters);
free(s->R[0][5]);
free(s->R[0][4]);
free(s->R[0][3]);
free(s->R[0][2]);
free(s->R[0][1]);
free(s->R[0][0]);
free(s->R[0]);
free(s->R);
free(s->C[0][1]);
free(s->C[0][0]);
free(s->C[0]);
free(s->C);
free(s->Et[0]);
free(s->Et);
free(s->W[0][1]);
free(s->W[0][0]);
free(s->W[0]);
free(s->W);
free(s->lambda);
free(s->inputMeans);
free(s->inputStd);
free(s->distanceMeasure);
free(s->Nv);
}
void load_values_pln2(pln2_t *s) {
s->clusterCenters[0][0] = 0.156058;
s->clusterCenters[0][1] = -0.146537;
s->clusterCenters[0][2] = -0.198173;
s->clusterCenters[0][3] = -0.124375;
s->clusterCenters[0][4] = -0.099951;
s->R[0][0][0] = 165.000000;
s->R[0][0][1] = 0.000000;
s->R[0][0][2] = -0.000000;
s->R[0][0][3] = -0.000000;
s->R[0][0][4] = -0.000000;
s->R[0][0][5] = 0.000000;
s->R[0][1][0] = 0.000000;
s->R[0][1][1] = 165.000000;
s->R[0][1][2] = -164.362100;
s->R[0][1][3] = -136.489400;
s->R[0][1][4] = -155.413100;
s->R[0][1][5] = -122.948900;
s->R[0][2][0] = -0.000000;
s->R[0][2][1] = -164.362100;
s->R[0][2][2] = 165.000000;
s->R[0][2][3] = 135.860200;
s->R[0][2][4] = 154.732000;
s->R[0][2][5] = 124.019800;
s->R[0][3][0] = -0.000000;
s->R[0][3][1] = -136.489400;
s->R[0][3][2] = 135.860200;
s->R[0][3][3] = 165.000000;
s->R[0][3][4] = 127.668900;
s->R[0][3][5] = 108.276500;
s->R[0][4][0] = -0.000000;
s->R[0][4][1] = -155.413100;
s->R[0][4][2] = 154.732000;
s->R[0][4][3] = 127.668900;
s->R[0][4][4] = 165.000000;
s->R[0][4][5] = 117.207800;
s->R[0][5][0] = 0.000000;
s->R[0][5][1] = -122.948900;
s->R[0][5][2] = 124.019800;
s->R[0][5][3] = 108.276500;
s->R[0][5][4] = 117.207800;
s->R[0][5][5] = 165.000000;
s->C[0][0][0] = 760.000000;
s->C[0][0][1] = 6.194779;
s->C[0][0][2] = -4.546650;
s->C[0][0][3] = -10.660160;
s->C[0][0][4] = -1.916767;
s->C[0][0][5] = -0.225034;
s->C[0][1][0] = 2661.022000;
s->C[0][1][1] = 1030.930000;
s->C[0][1][2] = -1024.175000;
s->C[0][1][3] = -917.665600;
s->C[0][1][4] = -971.831800;
s->C[0][1][5] = -825.899400;
s->Et[0][0] = 4302.000000;
s->Et[0][1] = 52931.870000;
s->W[0][0][0] = 4.606061;
s->W[0][0][1] = 0.414615;
s->W[0][0][2] = 0.294604;
s->W[0][0][3] = -0.116908;
s->W[0][0][4] = 0.153895;
s->W[0][0][5] = 0.053017;
s->W[0][1][0] = 16.127410;
s->W[0][1][1] = 3.613077;
s->W[0][1][2] = -0.765337;
s->W[0][1][3] = -1.220070;
s->W[0][1][4] = -0.324813;
s->W[0][1][5] = -0.699569;
s->lambda[0] = 0.01;
s->Nc = 1;
s->N = 5;
s->M = 2;
s->inputMeans[0] = 17.806060;
s->inputMeans[1] = 0.083139;
s->inputMeans[2] = 0.095105;
s->inputMeans[3] = 0.074748;
s->inputMeans[4] = 0.046258;
s->inputStd[0] = 7.650626;
s->inputStd[1] = 0.392381;
s->inputStd[2] = 0.375012;
s->inputStd[3] = 0.394829;
s->inputStd[4] = 0.350053;
s->distanceMeasure[0] = 0.000043;
s->distanceMeasure[1] = 0.000839;
s->distanceMeasure[2] = 0.000878;
s->distanceMeasure[3] = 0.000834;
s->distanceMeasure[4] = 0.000940;
s->Nv[0] = 165;
}
void pln2_usage() {
pln2_t pln2;
init_memory_pln2(&pln2);
load_values_pln2(&pln2);
// Use pln2 here
free_memory_pln2(&pln2);
}