[mlpack-git] master: Avoid deprecated methods inside NeighborSearch class. (74fd863)
gitdub at mlpack.org
gitdub at mlpack.org
Tue Aug 23 15:58:25 EDT 2016
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/1148f1652e139c9037eb3813550090313d089a30...a8a8a1381b529a01420de6e792a4a1e7bd58a626
>---------------------------------------------------------------
commit 74fd8631f8bda0d4f3e26a4725065b8e8aeb55be
Author: MarcosPividori <marcos.pividori at gmail.com>
Date: Fri Aug 19 11:45:09 2016 -0300
Avoid deprecated methods inside NeighborSearch class.
>---------------------------------------------------------------
74fd8631f8bda0d4f3e26a4725065b8e8aeb55be
.../neighbor_search/neighbor_search_impl.hpp | 58 +++++++++++++++++++---
1 file changed, 50 insertions(+), 8 deletions(-)
diff --git a/src/mlpack/methods/neighbor_search/neighbor_search_impl.hpp b/src/mlpack/methods/neighbor_search/neighbor_search_impl.hpp
index a4a7cfe..2bd7af4 100644
--- a/src/mlpack/methods/neighbor_search/neighbor_search_impl.hpp
+++ b/src/mlpack/methods/neighbor_search/neighbor_search_impl.hpp
@@ -328,10 +328,20 @@ SingleTreeTraversalType>::NeighborSearch(Tree& referenceTree,
const bool singleMode,
const double epsilon,
const MetricType metric) :
- NeighborSearch(new Tree(referenceTree), singleMode, epsilon,
- metric)
+ referenceTree(new Tree(referenceTree)),
+ referenceSet(&this->referenceTree->Dataset()),
+ treeOwner(true),
+ setOwner(false),
+ naive(false),
+ singleMode(singleMode),
+ epsilon(epsilon),
+ metric(metric),
+ baseCases(0),
+ scores(0),
+ treeNeedsReset(false)
{
- treeOwner = true;
+ if (epsilon < 0)
+ throw std::invalid_argument("epsilon must be non-negative");
}
// Construct the object.
@@ -348,10 +358,20 @@ SingleTreeTraversalType>::NeighborSearch(Tree&& referenceTree,
const bool singleMode,
const double epsilon,
const MetricType metric) :
- NeighborSearch(new Tree(std::move(referenceTree)), singleMode, epsilon,
- metric)
+ referenceTree(new Tree(std::move(referenceTree))),
+ referenceSet(&this->referenceTree->Dataset()),
+ treeOwner(true),
+ setOwner(false),
+ naive(false),
+ singleMode(singleMode),
+ epsilon(epsilon),
+ metric(metric),
+ baseCases(0),
+ scores(0),
+ treeNeedsReset(false)
{
- treeOwner = true;
+ if (epsilon < 0)
+ throw std::invalid_argument("epsilon must be non-negative");
}
// Construct the object without a reference dataset.
@@ -542,8 +562,19 @@ template<typename SortPolicy,
void NeighborSearch<SortPolicy, MetricType, MatType, TreeType,
DualTreeTraversalType, SingleTreeTraversalType>::Train(Tree& referenceTree)
{
- Train(new Tree(referenceTree));
+ if (naive)
+ throw std::invalid_argument("cannot train on given reference tree when "
+ "naive search (without trees) is desired");
+
+ if (treeOwner && this->referenceTree)
+ delete this->referenceTree;
+ if (setOwner && referenceSet)
+ delete this->referenceSet;
+
+ this->referenceTree = new Tree(referenceTree);
+ this->referenceSet = &this->referenceTree->Dataset();
treeOwner = true;
+ setOwner = false;
}
template<typename SortPolicy,
@@ -557,8 +588,19 @@ template<typename SortPolicy,
void NeighborSearch<SortPolicy, MetricType, MatType, TreeType,
DualTreeTraversalType, SingleTreeTraversalType>::Train(Tree&& referenceTree)
{
- Train(new Tree(std::move(referenceTree)));
+ if (naive)
+ throw std::invalid_argument("cannot train on given reference tree when "
+ "naive search (without trees) is desired");
+
+ if (treeOwner && this->referenceTree)
+ delete this->referenceTree;
+ if (setOwner && referenceSet)
+ delete this->referenceSet;
+
+ this->referenceTree = new Tree(std::move(referenceTree));
+ this->referenceSet = &this->referenceTree->Dataset();
treeOwner = true;
+ setOwner = false;
}
/**
More information about the mlpack-git
mailing list