[mlpack-git] master: fix bug--isdigit will not treat 1.004e10 as digit (a340e23)
gitdub at mlpack.org
gitdub at mlpack.org
Tue May 31 10:14:17 EDT 2016
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/1f562a1aba7ae55475afcc95659511c2b7f694e5...5b8fdce471328f722fcd8c0f22a6d995ce22c98b
>---------------------------------------------------------------
commit a340e23b46356e91444faeea93421e10e1a5a378
Author: stereomatchingkiss <stereomatchingkiss at gmail.com>
Date: Tue May 31 22:14:17 2016 +0800
fix bug--isdigit will not treat 1.004e10 as digit
>---------------------------------------------------------------
a340e23b46356e91444faeea93421e10e1a5a378
src/mlpack/core/data/load_impl.hpp | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/src/mlpack/core/data/load_impl.hpp b/src/mlpack/core/data/load_impl.hpp
index c74b089..f6fc93e 100644
--- a/src/mlpack/core/data/load_impl.hpp
+++ b/src/mlpack/core/data/load_impl.hpp
@@ -390,8 +390,11 @@ bool Load(const std::string& filename,
auto notNumber = [](std::string const &str)
{
- return std::any_of(std::begin(str), std::end(str),
- [](char c){ return !std::isdigit(c);});
+ eT val(0);
+ std::stringstream token;
+ token.str(str);
+ token>>val;
+ return token.fail();
};
size_t row = 0;
while (!stream.bad() && !stream.fail() && !stream.eof())
@@ -422,12 +425,12 @@ bool Load(const std::string& filename,
}
else
{
- std::stringstream sstream;
+ std::stringstream token;
for(size_t i = 0; i != tokens.size(); ++i)
{
- sstream<<tokens[i];
- sstream>>matrix.at(row, i);
- sstream.clear();
+ token.str(tokens[i]);
+ token>>matrix.at(row, i);
+ token.clear();
}
}
}
More information about the mlpack-git
mailing list