14 using namespace shogun;
18 SG_UNSTABLE(
"CHashedWDFeatures::CHashedWDFeatures()",
"\n")
38 int32_t start_order, int32_t order, int32_t from_order,
66 degree(orig.degree), start_degree(orig.start_degree),
67 from_degree(orig.from_degree), m_hash_bits(orig.m_hash_bits),
68 normalization_const(orig.normalization_const)
106 bool free_vec1, free_vec2;
109 uint8_t* vec2=wdf->strings->get_feature_vector(vec_idx2, len2, free_vec2);
115 for (int32_t i=0; i<len1; i++)
117 for (int32_t j=0; (i+j<len1) && (j<
degree); j++)
119 if (vec1[i+j]!=vec2[i+j])
126 wdf->strings->free_feature_vector(vec2, vec_idx2, free_vec2);
132 if (vec2_len !=
w_dim)
133 SG_ERROR(
"Dimensions don't match, vec2_dim=%d, w_dim=%d\n", vec2_len,
w_dim)
140 uint32_t* val=SG_MALLOC(uint32_t, len);
161 for (int32_t i=0; i+k < len; i++)
167 #ifdef DEBUG_HASHEDWD
168 SG_PRINT(
"vec[i]=%d, k=%d, offs=%d o=%d\n", vec[i], k,offs, o)
170 sum+=vec2[o+(h &
mask)]*wd;
186 if (vec2_len !=
w_dim)
187 SG_ERROR(
"Dimensions don't match, vec2_dim=%d, w_dim=%d\n", vec2_len,
w_dim)
193 uint32_t* val=SG_MALLOC(uint32_t, len);
217 for (int32_t i=0; i+k < len; i++)
223 #ifdef DEBUG_HASHEDWD
224 SG_PRINT(
"offs=%d o=%d h=%d \n", offs, o, h)
225 SG_PRINT(
"vec[i]=%d, k=%d, offs=%d o=%d\n", vec[i], k,offs, o)
227 vec2[o+(h &
mask)]+=wd;
251 for (int32_t i=0; i<
degree; i++)
254 SG_DEBUG(
"created HashedWDFeatures with d=%d (%d), alphabetsize=%d, "
255 "dim=%d partial_dim=%d num=%d, len=%d\n",
266 for (int32_t i=0; i<
degree; i++)