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)
94 bool free_vec1, free_vec2;
97 uint8_t* vec2=wdf->strings->get_feature_vector(vec_idx2, len2, free_vec2);
103 for (int32_t i=0; i<len1; i++)
105 for (int32_t j=0; (i+j<len1) && (j<
degree); j++)
107 if (vec1[i+j]!=vec2[i+j])
114 wdf->strings->free_feature_vector(vec2, vec_idx2, free_vec2);
120 if (vec2_len !=
w_dim)
121 SG_ERROR(
"Dimensions don't match, vec2_dim=%d, w_dim=%d\n", vec2_len,
w_dim)
128 uint32_t* val=SG_MALLOC(uint32_t, len);
149 for (int32_t i=0; i+k < len; i++)
155 #ifdef DEBUG_HASHEDWD
156 SG_PRINT(
"vec[i]=%d, k=%d, offs=%d o=%d\n", vec[i], k,offs, o)
158 sum+=vec2[o+(h &
mask)]*wd;
174 if (vec2_len !=
w_dim)
175 SG_ERROR(
"Dimensions don't match, vec2_dim=%d, w_dim=%d\n", vec2_len,
w_dim)
181 uint32_t* val=SG_MALLOC(uint32_t, len);
205 for (int32_t i=0; i+k < len; i++)
211 #ifdef DEBUG_HASHEDWD
212 SG_PRINT(
"offs=%d o=%d h=%d \n", offs, o, h)
213 SG_PRINT(
"vec[i]=%d, k=%d, offs=%d o=%d\n", vec[i], k,offs, o)
215 vec2[o+(h &
mask)]+=wd;
239 for (int32_t i=0; i<
degree; i++)
242 SG_DEBUG(
"created HashedWDFeatures with d=%d (%d), alphabetsize=%d, "
243 "dim=%d partial_dim=%d num=%d, len=%d\n",
254 for (int32_t i=0; i<
degree; i++)