diff --git a/src/shogun/labels/BinaryLabels.cpp b/src/shogun/labels/BinaryLabels.cpp index 3ef8d9c8ecc..c2d99dc7aec 100644 --- a/src/shogun/labels/BinaryLabels.cpp +++ b/src/shogun/labels/BinaryLabels.cpp @@ -20,6 +20,15 @@ CBinaryLabels::CBinaryLabels(SGVector src) : CDenseLabels() set_values(values); } +CBinaryLabels::CBinaryLabels(SGVector src) : CDenseLabels() +{ + SGVector values(src.vlen); + for (int32_t i=0; i src, float64_t threshold) : CDenseLabels() { SGVector labels(src.vlen); diff --git a/src/shogun/labels/BinaryLabels.h b/src/shogun/labels/BinaryLabels.h index 6bf78134d3a..2c7fe2253a1 100644 --- a/src/shogun/labels/BinaryLabels.h +++ b/src/shogun/labels/BinaryLabels.h @@ -52,6 +52,13 @@ class CBinaryLabels : public CDenseLabels */ CBinaryLabels(SGVector src); + /** constructor + * sets labels with src elements (int64 version) + * + * @param src labels to set + */ + CBinaryLabels(SGVector src); + /** constructor * sets values from src vector * sets labels with sign of src elements with added threshold diff --git a/src/shogun/labels/DenseLabels.cpp b/src/shogun/labels/DenseLabels.cpp index 13f3e69de6c..1d53b3a749e 100644 --- a/src/shogun/labels/DenseLabels.cpp +++ b/src/shogun/labels/DenseLabels.cpp @@ -119,6 +119,17 @@ void CDenseLabels::set_int_labels(SGVector lab) set_int_label(i, lab.vector[i]); } +void CDenseLabels::set_int_labels(SGVector lab) +{ + if (m_subset_stack->has_subsets()) + SG_ERROR("set_int_labels() is not possible on subset") + + m_labels = SGVector(lab.vlen); + + for (int32_t i=0; i labels); + /** set INT64 labels + * + * not possible on subset + * + * @param labels INT labels + */ + void set_int_labels(SGVector labels); + /** get number of labels, depending on whether a subset is set * * @return number of labels