@@ -113,7 +113,11 @@ List wTGS(SEXP X_, SEXP y_, SEXP n_, SEXP p_, SEXP n_iter, SEXP burnin_, SEXP h1
113
113
NumericVector start (p);
114
114
NumericVector sample_weights (n_it);
115
115
NumericVector indices_sequence (n_it);
116
- NumericMatrix full_cond (n_it, p);
116
+ // NumericMatrix full_cond(n_it, p);
117
+ // NumericMatrix PIP_check(n_it, p);
118
+ // NumericVector z_check(n_it);
119
+ // NumericVector sumweight_check(n_it);
120
+ // NumericMatrix gamma_check(n_it, p);
117
121
118
122
Gamma main (X, y, n, p, h1, h2, c, k, w);
119
123
@@ -123,7 +127,7 @@ List wTGS(SEXP X_, SEXP y_, SEXP n_, SEXP p_, SEXP n_iter, SEXP burnin_, SEXP h1
123
127
// if (i < burnin)
124
128
// cout << "\r\t(Burn in) Iteration " << i;
125
129
// else
126
- if (i == burnin)
130
+ if ((i- 1 ) == burnin)
127
131
{
128
132
// cout << "\r\t(Burn in) Iteration " << i << endl;
129
133
for (int j = 0 ; j < p; j++)
@@ -139,29 +143,41 @@ List wTGS(SEXP X_, SEXP y_, SEXP n_, SEXP p_, SEXP n_iter, SEXP burnin_, SEXP h1
139
143
main.calculateH ();
140
144
main.calculateFullCond ();
141
145
main.calculateFlipRates ();
146
+ if (i > burnin)
147
+ indices_sequence[i-burnin-1 ] = main.j +1 ;
142
148
double z = main.calculateWeight ();
143
149
// main.updatePIP(z);
144
150
145
151
if (i > burnin)
146
152
{
147
153
main.updatePIP (z);
148
154
sample_weights[i-burnin-1 ] = z;
149
- indices_sequence[i-burnin-1 ] = main.j +1 ;
150
- for (int j=0 ; j<p; j++)
151
- full_cond (i-burnin-1 , j) = main.full_cond [j];
155
+ // for (int j=0; j<p; j++)
156
+ // {
157
+ // full_cond(i-burnin-1, j) = main.full_cond[j];
158
+ // PIP_check(i-burnin-1, j) = main.PIP[j]/main.sumweight;
159
+ // gamma_check(i-burnin-1, j) = main.gamma[j];
160
+ // }
161
+ // z_check(i-burnin-1) = z;
162
+ // sumweight_check(i-burnin-1) = main.sumweight;
152
163
}
153
164
}
154
165
155
166
// cout << endl << "DONE" << endl;
156
167
for (int i = 0 ; i < p; i++)
157
168
PIP[i] = main.PIP [i]/main.sumweight ;
158
169
159
- List output (5 );
170
+ // List output(9);
171
+ List output (4 );
160
172
output[0 ] = PIP;
161
173
output[1 ] = start;
162
174
output[2 ] = sample_weights/main.sumweight ;
163
175
output[3 ] = indices_sequence;
164
- output[4 ] = full_cond;
176
+ // output[4] = full_cond;
177
+ // output[5] = PIP_check;
178
+ // output[6] = z_check;
179
+ // output[7] = sumweight_check;
180
+ // output[8] = gamma_check;
165
181
return output;
166
182
}
167
183
@@ -435,12 +451,12 @@ void Gamma::calculateFlipRates()
435
451
if (w)
436
452
{
437
453
if (gamma [i] == 0 )
438
- flip_rates[i] = (1 -full_cond[i]+k/p)/full_cond[i];
454
+ flip_rates[i] = (1.0 -full_cond[i]+k/p)/full_cond[i];
439
455
else
440
- flip_rates[i] = 1 + (k/p)/full_cond[i];
456
+ flip_rates[i] = 1.0 + (k/p)/full_cond[i];
441
457
}
442
458
else
443
- flip_rates[i] = 1 /full_cond[i];
459
+ flip_rates[i] = 1.0 /full_cond[i];
444
460
}
445
461
}
446
462
@@ -470,6 +486,6 @@ void Gamma::updatePIP(double z)
470
486
sumweight += z;
471
487
for (int i = 0 ; i < p; i++)
472
488
{
473
- PIP[i] += z*(gamma [i]*full_cond[i] + (1 -gamma [i])*(1 -full_cond[i]));
489
+ PIP[i] += z*(gamma [i]*full_cond[i] + (1.0 -gamma [i])*(1.0 -full_cond[i]));
474
490
}
475
491
}
0 commit comments