15 using namespace shogun;
34 m_str_min(NULL), m_str_maj(NULL)
56 normalization_const(orig.normalization_const),
57 m_str_min(NULL), m_str_maj(NULL)
138 bool free_avec, free_bvec;
141 uint8_t* bvec = sf->strings->get_feature_vector(idx_b, blen, free_bvec);
151 for (int32_t i = 0; i<alen-1; i+=2)
158 uint8_t a2=avec[i+1];
160 uint8_t b2=bvec[i+1];
162 if ((a1!=a2 || a1==
'0' || a1==
'0') && (b1!=b2 || b1==
'0' || b2==
'0'))
164 else if (a1==a2 && b1==b2)
175 SG_ERROR(
"The impossible happened i=%d a1=%c "
180 total+=sumaa+sumbb+sumab;
184 sf->strings->free_feature_vector(bvec, idx_b, free_bvec);
190 if (vec2_len !=
w_dim)
191 SG_ERROR(
"Dimensions don't match, vec2_dim=%d, w_dim=%d\n", vec2_len,
w_dim);
199 for (int32_t i=0; i<len; i+=2)
206 if (a1==a2 && a1!=
'0' && a2!=
'0')
214 SG_ERROR(
"The impossible happened i=%d a1=%c a2=%c min=%c maj=%c\n",
229 if (vec2_len !=
w_dim)
230 SG_ERROR(
"Dimensions don't match, vec2_dim=%d, w_dim=%d\n", vec2_len,
w_dim);
240 for (int32_t i=0; i<len; i+=2)
247 if (a1==a2 && a1!=
'0' && a2!=
'0')
255 SG_ERROR(
"The impossible happened i=%d a1=%c a2=%c min=%c maj=%c\n",
260 vec2[offs+dim]+=alpha;
266 void CSNPFeatures::find_minor_major_strings(uint8_t* minor, uint8_t* major)
275 for (int32_t j=0; j<len; j++)
283 else if (major[j]==0 && vec[j]!=minor[j])
358 for (int32_t i=0; i<num_str; i++)
364 for (int32_t j=0; j<len; j+=2)
371 if (a1==a2 && a1!=
'0' && a2!=
'0')
379 SG_ERROR(
"The impossible happened j=%d a1=%c a2=%c min=%c maj=%c\n",
384 h[int64_t(j/2)*nsym+dim]++;
395 for (int32_t j=0; j<nsym; j++)
397 if (h_normalizer && h_normalizer[i])
398 h[int64_t(i)*nsym+j]/=h_normalizer[i];
419 for (int32_t i=0; i<3*len/2; i++)
421 table[2*i]=p_hist.
matrix[i];
422 table[2*i+1]=n_hist.
matrix[i];