diff options
Diffstat (limited to 'src/bslmmdap.cpp')
-rw-r--r-- | src/bslmmdap.cpp | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/bslmmdap.cpp b/src/bslmmdap.cpp index 7aac1d4..e9900e3 100644 --- a/src/bslmmdap.cpp +++ b/src/bslmmdap.cpp @@ -116,16 +116,16 @@ void ReadFile_hyb(const string &file_hyp, vector<double> &vec_sa2, getline(infile, line); while (!safeGetline(infile, line).eof()) { - ch_ptr = strtok((char *)line.c_str(), " , \t"); - ch_ptr = strtok(NULL, " , \t"); + ch_ptr = strtok_safe((char *)line.c_str(), " , \t"); + ch_ptr = strtok_safe(NULL, " , \t"); - ch_ptr = strtok(NULL, " , \t"); + ch_ptr = strtok_safe(NULL, " , \t"); vec_sa2.push_back(atof(ch_ptr)); - ch_ptr = strtok(NULL, " , \t"); + ch_ptr = strtok_safe(NULL, " , \t"); vec_sb2.push_back(atof(ch_ptr)); - ch_ptr = strtok(NULL, " , \t"); + ch_ptr = strtok_safe(NULL, " , \t"); vec_wab.push_back(atof(ch_ptr)); } @@ -152,7 +152,7 @@ void ReadFile_bf(const string &file_bf, vector<string> &vec_rs, vector<vector<double>> mat_bf; char *ch_ptr; - size_t bf_size, flag_block; + size_t bf_size = 0, flag_block; getline(infile, line); @@ -160,11 +160,11 @@ void ReadFile_bf(const string &file_bf, vector<string> &vec_rs, while (!safeGetline(infile, line).eof()) { flag_block = 0; - ch_ptr = strtok((char *)line.c_str(), " , \t"); + ch_ptr = strtok_safe((char *)line.c_str(), " , \t"); rs = ch_ptr; vec_rs.push_back(rs); - ch_ptr = strtok(NULL, " , \t"); + ch_ptr = strtok_safe(NULL, " , \t"); if (t == 0) { block = ch_ptr; } else { @@ -223,7 +223,7 @@ void ReadFile_cat(const string &file_cat, const vector<string> &vec_rs, // Read header. HEADER header; - !safeGetline(infile, line).eof(); + safeGetline(infile, line).eof(); ReadHeader_io(line, header); // Use the header to determine the number of categories. @@ -238,7 +238,7 @@ void ReadFile_cat(const string &file_cat, const vector<string> &vec_rs, // Read the following lines to record mapRS2cat. while (!safeGetline(infile, line).eof()) { - ch_ptr = strtok((char *)line.c_str(), " , \t"); + ch_ptr = strtok_safe((char *)line.c_str(), " , \t"); if (header.rs_col == 0) { rs = chr + ":" + pos; @@ -248,6 +248,7 @@ void ReadFile_cat(const string &file_cat, const vector<string> &vec_rs, catd.clear(); for (size_t i = 0; i < header.coln; i++) { + enforce(ch_ptr); if (header.rs_col != 0 && header.rs_col == i + 1) { rs = ch_ptr; } else if (header.chr_col != 0 && header.chr_col == i + 1) { @@ -658,13 +659,13 @@ void single_ct_regression(const gsl_matrix_int *Xd, sum_pip[i] = sum[i] = 0; } - for (int i = 0; i < Xd->size1; i++) { + for (size_t i = 0; i < Xd->size1; i++) { int cat = gsl_matrix_int_get(Xd, i, 0); sum_pip[cat] += gsl_vector_get(pip_vec, i); sum[cat] += 1; } - for (int i = 0; i < Xd->size1; i++) { + for (size_t i = 0; i < Xd->size1; i++) { int cat = gsl_matrix_int_get(Xd, i, 0); gsl_vector_set(prior_vec, i, sum_pip[cat] / sum[cat]); } @@ -683,10 +684,10 @@ void BSLMMDAP::DAP_EstimateHyper( const vector<double> &vec_sa2, const vector<double> &vec_sb2, const vector<double> &wab, const vector<vector<vector<double>>> &BF, gsl_matrix *Ac, gsl_matrix_int *Ad, gsl_vector_int *dlevel) { - clock_t time_start; + // clock_t time_start; // Set up BF. - double h, rho, sigma_a2, sigma_b2, d, s, logm, logm_save; + double h, rho, sigma_a2, sigma_b2, d, s, logm, logm_save = nan(""); size_t t1, t2; size_t n_grid = wab.size(), ns_test = vec_rs.size(); |