[mlpack-git] master: Be sure to cast to ElemType because it is not always guaranteed that ElemType is returned from std::sqrt(). (a7794bd)

gitdub at mlpack.org gitdub at mlpack.org
Mon Aug 15 12:09:05 EDT 2016


Repository : https://github.com/mlpack/mlpack
On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/95da0dd57f73d7f102652a48d7c052b7e66532b5...a7794bde8082c691553152393e1e230098f5e920

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

commit a7794bde8082c691553152393e1e230098f5e920
Author: Ryan Curtin <ryan at ratml.org>
Date:   Mon Aug 15 12:09:05 2016 -0400

    Be sure to cast to ElemType because it is not always guaranteed that ElemType is returned from std::sqrt().


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

a7794bde8082c691553152393e1e230098f5e920
 src/mlpack/core/tree/hrectbound_impl.hpp | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/mlpack/core/tree/hrectbound_impl.hpp b/src/mlpack/core/tree/hrectbound_impl.hpp
index 196067f..41dd0de 100644
--- a/src/mlpack/core/tree/hrectbound_impl.hpp
+++ b/src/mlpack/core/tree/hrectbound_impl.hpp
@@ -196,7 +196,7 @@ inline ElemType HRectBound<MetricType, ElemType>::MinDistance(
   else if (MetricType::Power == 2)
   {
     if (MetricType::TakeRoot)
-      return std::sqrt(sum) * 0.5;
+      return (ElemType) std::sqrt(sum) * 0.5;
     else
       return sum * 0.25;
   }
@@ -256,7 +256,7 @@ ElemType HRectBound<MetricType, ElemType>::MinDistance(const HRectBound& other)
   else if (MetricType::Power == 2)
   {
     if (MetricType::TakeRoot)
-      return std::sqrt(sum) * 0.5;
+      return (ElemType) std::sqrt(sum) * 0.5;
     else
       return sum * 0.25;
   }
@@ -302,7 +302,7 @@ inline ElemType HRectBound<MetricType, ElemType>::MaxDistance(
     if (MetricType::Power == 1)
       return sum;
     else if (MetricType::Power == 2)
-      return std::sqrt(sum);
+      return (ElemType) std::sqrt(sum);
     else
       return (ElemType) pow((double) sum, 1.0 / (double) MetricType::Power);
   }
@@ -343,7 +343,7 @@ inline ElemType HRectBound<MetricType, ElemType>::MaxDistance(
     if (MetricType::Power == 1)
       return sum;
     else if (MetricType::Power == 2)
-      return std::sqrt(sum);
+      return (ElemType) std::sqrt(sum);
     else
       return (ElemType) pow((double) sum, 1.0 / (double) MetricType::Power);
   }
@@ -404,7 +404,8 @@ HRectBound<MetricType, ElemType>::RangeDistance(
     if (MetricType::Power == 1)
       return math::RangeType<ElemType>(loSum, hiSum);
     else if (MetricType::Power == 2)
-      return math::RangeType<ElemType>(std::sqrt(loSum), std::sqrt(hiSum));
+      return math::RangeType<ElemType>((ElemType) std::sqrt(loSum),
+                                       (ElemType) std::sqrt(hiSum));
     else
     {
       return math::RangeType<ElemType>(
@@ -479,7 +480,8 @@ HRectBound<MetricType, ElemType>::RangeDistance(
     if (MetricType::Power == 1)
       return math::RangeType<ElemType>(loSum, hiSum);
     else if (MetricType::Power == 2)
-      return math::RangeType<ElemType>(std::sqrt(loSum), std::sqrt(hiSum));
+      return math::RangeType<ElemType>((ElemType) std::sqrt(loSum),
+                                       (ElemType) std::sqrt(hiSum));
     else
     {
       return math::RangeType<ElemType>(




More information about the mlpack-git mailing list