16 using namespace shogun;
35 m_str_min(NULL), m_str_maj(NULL)
57 normalization_const(orig.normalization_const),
58 m_str_min(NULL), m_str_maj(NULL)
134 bool free_avec, free_bvec;
137 uint8_t* bvec = sf->strings->get_feature_vector(idx_b, blen, free_bvec);
147 for (int32_t i = 0; i<alen-1; i+=2)
154 uint8_t a2=avec[i+1];
156 uint8_t b2=bvec[i+1];
158 if ((a1!=a2 || a1==
'0' || a1==
'0') && (b1!=b2 || b1==
'0' || b2==
'0'))
160 else if (a1==a2 && b1==b2)
171 SG_ERROR(
"The impossible happened i=%d a1=%c "
176 total+=sumaa+sumbb+sumab;
180 sf->strings->free_feature_vector(bvec, idx_b, free_bvec);
186 if (vec2_len !=
w_dim)
187 SG_ERROR(
"Dimensions don't match, vec2_dim=%d, w_dim=%d\n", vec2_len,
w_dim)
195 for (int32_t i=0; i<len; i+=2)
202 if (a1==a2 && a1!=
'0' && a2!=
'0')
210 SG_ERROR(
"The impossible happened i=%d a1=%c a2=%c min=%c maj=%c\n",
225 if (vec2_len !=
w_dim)
226 SG_ERROR(
"Dimensions don't match, vec2_dim=%d, w_dim=%d\n", vec2_len,
w_dim)
236 for (int32_t i=0; i<len; i+=2)
243 if (a1==a2 && a1!=
'0' && a2!=
'0')
251 SG_ERROR(
"The impossible happened i=%d a1=%c a2=%c min=%c maj=%c\n",
256 vec2[offs+dim]+=alpha;
262 void CSNPFeatures::find_minor_major_strings(uint8_t* minor, uint8_t* major)
271 for (int32_t j=0; j<len; j++)
279 else if (major[j]==0 && vec[j]!=minor[j])
354 for (int32_t i=0; i<num_str; i++)
360 for (int32_t j=0; j<len; j+=2)
367 if (a1==a2 && a1!=
'0' && a2!=
'0')
375 SG_ERROR(
"The impossible happened j=%d a1=%c a2=%c min=%c maj=%c\n",
380 h[int64_t(j/2)*nsym+dim]++;
391 for (int32_t j=0; j<nsym; j++)
393 if (h_normalizer && h_normalizer[i])
394 h[int64_t(i)*nsym+j]/=h_normalizer[i];
398 SG_FREE(h_normalizer);
415 for (int32_t i=0; i<3*len/2; i++)
417 table[2*i]=p_hist.
matrix[i];
418 table[2*i+1]=n_hist.
matrix[i];