From c77fca7ea42815daab3079199667578a3db3075b Mon Sep 17 00:00:00 2001 From: lambday Date: Wed, 12 Feb 2014 19:56:39 +0530 Subject: [PATCH] changed feature vectors from SGVector in ssk::compute --- .../kernel/string/StringSubsequenceKernel.cpp | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/shogun/kernel/string/StringSubsequenceKernel.cpp b/src/shogun/kernel/string/StringSubsequenceKernel.cpp index 49b0d6dd4a9..1f0550f3ea3 100644 --- a/src/shogun/kernel/string/StringSubsequenceKernel.cpp +++ b/src/shogun/kernel/string/StringSubsequenceKernel.cpp @@ -59,15 +59,16 @@ float64_t CStringSubsequenceKernel::compute(int32_t idx_a, int32_t idx_b) REQUIRE(lhs, "lhs feature vector is not set!\n") REQUIRE(rhs, "rhs feature vector is not set!\n") - SGVector avec=dynamic_cast*>(lhs) - ->get_feature_vector(idx_a); - SGVector bvec=dynamic_cast*>(rhs) - ->get_feature_vector(idx_b); + int32_t alen, blen; + bool free_avec, free_bvec; - REQUIRE(avec.vector, "Feature vector for lhs is NULL!\n"); - REQUIRE(bvec.vector, "Feature vector for rhs is NULL!\n"); + char* avec=dynamic_cast*>(lhs) + ->get_feature_vector(idx_a, alen, free_avec); + char* bvec=dynamic_cast*>(rhs) + ->get_feature_vector(idx_b, blen, free_bvec); - int32_t alen=avec.size(), blen=bvec.size(); + REQUIRE(avec, "Feature vector for lhs is NULL!\n"); + REQUIRE(bvec, "Feature vector for rhs is NULL!\n"); // allocating memory for computing K' (Kp) float64_t ***Kp=SG_MALLOC(float64_t**, m_maxlen+1); @@ -93,7 +94,7 @@ float64_t CStringSubsequenceKernel::compute(int32_t idx_a, int32_t idx_b) float64_t Kpp=0.0; for (index_t k=0; k*>(lhs)->free_feature_vector(avec, idx_a, + free_avec); + dynamic_cast*>(rhs)->free_feature_vector(bvec, idx_b, + free_bvec); + for (index_t i=0; i