[mlpack-git] master: Use a const datasetInfo. (567f212)

gitdub at big.cc.gt.atl.ga.us gitdub at big.cc.gt.atl.ga.us
Wed Dec 23 11:45:12 EST 2015


Repository : https://github.com/mlpack/mlpack

On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/de9cc4b05069e1fa4793d9355f2f595af5ff45d2...6070527af14296cd99739de6c62666cc5d2a2125

>---------------------------------------------------------------

commit 567f2126f156d336bbf3579f5e9899481dda71cd
Author: Ryan Curtin <ryan at ratml.org>
Date:   Tue Oct 27 14:01:57 2015 -0700

    Use a const datasetInfo.


>---------------------------------------------------------------

567f2126f156d336bbf3579f5e9899481dda71cd
 src/mlpack/methods/hoeffding_trees/hoeffding_split.hpp      |  2 +-
 src/mlpack/methods/hoeffding_trees/hoeffding_split_impl.hpp | 12 ++++++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/mlpack/methods/hoeffding_trees/hoeffding_split.hpp b/src/mlpack/methods/hoeffding_trees/hoeffding_split.hpp
index 86ae07d..ebaee47 100644
--- a/src/mlpack/methods/hoeffding_trees/hoeffding_split.hpp
+++ b/src/mlpack/methods/hoeffding_trees/hoeffding_split.hpp
@@ -83,7 +83,7 @@ class HoeffdingSplit
   size_t numClasses;
   size_t maxSamples;
   size_t checkInterval;
-  data::DatasetInfo* datasetInfo;
+  const data::DatasetInfo* datasetInfo;
   double successProbability;
 
   // And we need to keep some information for after we have split.
diff --git a/src/mlpack/methods/hoeffding_trees/hoeffding_split_impl.hpp b/src/mlpack/methods/hoeffding_trees/hoeffding_split_impl.hpp
index 99f2f0d..b0898e7 100644
--- a/src/mlpack/methods/hoeffding_trees/hoeffding_split_impl.hpp
+++ b/src/mlpack/methods/hoeffding_trees/hoeffding_split_impl.hpp
@@ -32,7 +32,7 @@ HoeffdingSplit<
     numClasses(numClasses),
     maxSamples(maxSamples),
     checkInterval(checkInterval),
-    datasetInfo(const_cast<data::DatasetInfo*>(&datasetInfo)),
+    datasetInfo(&datasetInfo),
     successProbability(successProbability),
     splitDimension(size_t(-1)),
     categoricalSplit(0),
@@ -349,7 +349,15 @@ void HoeffdingSplit<
   ar & CreateNVP(splitDimension, "splitDimension");
   ar & CreateNVP(dimensionMappings, "dimensionMappings");
   ar & CreateNVP(ownsMappings, "ownsMappings");
-  ar & CreateNVP(datasetInfo, "datasetInfo");
+
+  // Special handling for const object.
+  data::DatasetInfo* d = NULL;
+  if (Archive::is_saving::value)
+    d = const_cast<data::DatasetInfo*>(datasetInfo);
+  ar & CreateNVP(d, "datasetInfo");
+  if (Archive::is_loading::value)
+    datasetInfo = d;
+
   ar & CreateNVP(majorityClass, "majorityClass");
   ar & CreateNVP(majorityProbability, "majorityProbability");
 



More information about the mlpack-git mailing list