Skip to content

Commit

Permalink
SGVector fix for WD-kernel constructor
Browse files Browse the repository at this point in the history
  • Loading branch information
Soeren Sonnenburg committed Apr 17, 2012
1 parent 8436b0a commit 2649a77
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/shogun/kernel/WeightedDegreePositionStringKernel.cpp
Expand Up @@ -1858,7 +1858,7 @@ void CWeightedDegreePositionStringKernel::compute_POIM2(
SG_FREE(sv_idx);
}

SGMatrix<float64_t> CWeightedDegreePositionStringKernel::get_POIM2()
SGVector<float64_t> CWeightedDegreePositionStringKernel::get_POIM2()
{
SGVector<float64_t> poim(m_poim, m_poim_result_len);
return poim;
Expand Down
9 changes: 5 additions & 4 deletions src/shogun/kernel/WeightedDegreeStringKernel.cpp
Expand Up @@ -65,21 +65,22 @@ CWeightedDegreeStringKernel::CWeightedDegreeStringKernel (
set_wd_weights_by_type(type);
}

CWeightedDegreeStringKernel::CWeightedDegreeStringKernel (
float64_t *w, int32_t d)
CWeightedDegreeStringKernel::CWeightedDegreeStringKernel(SGVector<float64_t> w)
: CStringKernel<char>(10)
{
init();

type=E_EXTERNAL;
degree=d;
degree=w.vlen;

weights=SG_MALLOC(float64_t, degree*(1+max_mismatch));
weights_degree=degree;
weights_length=(1+max_mismatch);

for (int32_t i=0; i<degree*(1+max_mismatch); i++)
weights[i]=w[i];
weights[i]=w.vector[i];

w.free_vector();
}

CWeightedDegreeStringKernel::CWeightedDegreeStringKernel(
Expand Down
3 changes: 1 addition & 2 deletions src/shogun/kernel/WeightedDegreeStringKernel.h
Expand Up @@ -70,9 +70,8 @@ class CWeightedDegreeStringKernel: public CStringKernel<char>
/** constructor
*
* @param weights kernel's weights
* @param degree degree
*/
CWeightedDegreeStringKernel(float64_t* weights, int32_t degree);
CWeightedDegreeStringKernel(SGVector<float64_t> weights);

/** constructor
*
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/ui/GUIKernel.cpp
Expand Up @@ -254,7 +254,7 @@ CKernel* CGUIKernel::create_weighteddegreestring(
}
}

CKernel* kern=new CWeightedDegreeStringKernel(weights, order);
CKernel* kern=new CWeightedDegreeStringKernel(SGVector<float64_t>(weights, order));

SG_DEBUG("created WeightedDegreeStringKernel (%p) with size %d, order %d, "
"max_mismatch %d, use_normalization %d, mkl_stepsize %d, "
Expand Down

0 comments on commit 2649a77

Please sign in to comment.