diff --git a/examples/meta/src/distance/euclidean.sg b/examples/meta/src/distance/euclidean.sg index 289dabedfd9..9dd0933b77e 100644 --- a/examples/meta/src/distance/euclidean.sg +++ b/examples/meta/src/distance/euclidean.sg @@ -1,24 +1,24 @@ -CSVFile f_feats_a("../../data/fm_train_real.dat") -CSVFile f_feats_b("../../data/fm_test_real.dat") +File f_features_a = csv_file("../../data/fm_train_real.dat") +File f_features_b = csv_file("../../data/fm_test_real.dat") #![create_features] -RealFeatures features_a(f_feats_a) -RealFeatures features_b(f_feats_b) +Features features_a = features(f_features_a) +Features features_b = features(f_features_b) #![create_features] #![create_instance] -EuclideanDistance distance(features_a, features_a) +Distance d = distance("EuclideanDistance", lhs=features_a, rhs=features_a) #![create_instance] #![extract_distance] -RealMatrix distance_matrix_aa = distance.get_distance_matrix() +RealMatrix distance_matrix_aa = d.get_distance_matrix() #![extract_distance] #![refresh_distance] -distance.init(features_a, features_b) +d.init(features_a, features_b) #![refresh_distance] #![extract_sq_distance] -distance.set_disable_sqrt(True) -RealMatrix distance_matrix_ab = distance.get_distance_matrix() +d.put("disable_sqrt", True) +RealMatrix sq_distance_matrix_ab = d.get_distance_matrix() #![extract_sq_distance] diff --git a/src/interfaces/swig/shogun.i b/src/interfaces/swig/shogun.i index ae4d5b901ac..119f17672cf 100644 --- a/src/interfaces/swig/shogun.i +++ b/src/interfaces/swig/shogun.i @@ -178,6 +178,7 @@ namespace shogun %template(put) CSGObject::put_scalar_dispatcher; #endif // SWIGJAVA %template(put) CSGObject::put_scalar_dispatcher; +%template(put) CSGObject::put_scalar_dispatcher; #ifndef SWIGJAVA diff --git a/src/shogun/distance/Distance.cpp b/src/shogun/distance/Distance.cpp index 342936f9130..58f56bb5c1d 100644 --- a/src/shogun/distance/Distance.cpp +++ b/src/shogun/distance/Distance.cpp @@ -259,10 +259,8 @@ void CDistance::init() num_lhs=0; num_rhs=0; - m_parameters->add((CSGObject**) &lhs, "lhs", - "Feature vectors to occur on left hand side."); - m_parameters->add((CSGObject**) &rhs, "rhs", - "Feature vectors to occur on right hand side."); + SG_ADD(&lhs, "lhs", "Left hand side features.", MS_NOT_AVAILABLE); + SG_ADD(&rhs, "rhs", "Right hand side features.", MS_NOT_AVAILABLE); } template diff --git a/src/shogun/distance/EuclideanDistance.cpp b/src/shogun/distance/EuclideanDistance.cpp index 98dfc9c8e68..eea0138e41f 100644 --- a/src/shogun/distance/EuclideanDistance.cpp +++ b/src/shogun/distance/EuclideanDistance.cpp @@ -1,7 +1,7 @@ /* * This software is distributed under BSD 3-clause license (see LICENSE file). * - * Authors: Saurabh Mahindre, Soumyajit De, Chiyuan Zhang, Viktor Gal, + * Authors: Saurabh Mahindre, Soumyajit De, Chiyuan Zhang, Viktor Gal, * Björn Esser, Soeren Sonnenburg */ diff --git a/src/shogun/util/factory.h b/src/shogun/util/factory.h index f7645abd9f8..f5537b9fd3a 100644 --- a/src/shogun/util/factory.h +++ b/src/shogun/util/factory.h @@ -1,21 +1,24 @@ /* * This software is distributed under BSD 3-clause license (see LICENSE file). * - * Authors: Heiko Strathmann + * Authors: Heiko Strathmann, Fernando Iglesias */ #ifndef FACTORY_H_ #define FACTORY_H_ #include +#include #include #include #include #include #include +#include namespace shogun { + CDistance* distance(const std::string& name); CKernel* kernel(const std::string& name); CMachine* machine(const std::string& name); @@ -25,6 +28,7 @@ namespace shogun return create_object(name.c_str()); \ } + BASE_CLASS_FACTORY(CDistance, distance) BASE_CLASS_FACTORY(CKernel, kernel) BASE_CLASS_FACTORY(CMachine, machine)