Ignore:
Timestamp:
Sep 30, 2007, 3:26:36 AM (14 years ago)
Author:
Peter
Message:

fixes #257

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/yat/utility/utility.cc

    r865 r917  
    3939  bool is_double(const std::string& s)
    4040  {
     41    if (is_nan(s) || is_equal(s, "inf") || is_equal(s, "-inf"))
     42      return true;
    4143    std::stringstream ss(s);
    4244    double a;
     
    5052  }
    5153 
     54
     55  bool is_equal(std::string s, std::string other)
     56  {
     57    std::stringstream ss(s);
     58    std::string s2;
     59    ss >> s2; // to trim surrounding whitespaces
     60    to_lower(s2);
     61    // Check that nothing is left on stream
     62    std::string s3;
     63    ss >> s3;
     64    if(s3.size())
     65      return false;
     66    return (other==s2);
     67  }
     68
     69
    5270  bool is_float(const std::string& s)
    5371  {
     72    if (is_nan(s) || is_equal(s, "inf") || is_equal(s, "-inf"))
     73      return true;
    5474    std::stringstream ss(s);
    5575    float a;
     
    6383  }
    6484
     85
    6586  bool is_int(const std::string& s)
    6687  {
     88    if (is_nan(s) || is_equal(s, "inf") || is_equal(s, "-inf"))
     89      return true;
    6790    std::stringstream ss(s);
    6891    int a;
     
    78101  bool is_nan(const std::string& s)
    79102  {
    80     std::stringstream ss(s);
    81     std::string s2;
    82     ss >> s2; // to trim surrounding whitespaces
    83     to_lower(s2);
    84     // Check that nothing is left on stream
    85     std::string s3;
    86     ss >> s3;
    87     if(s3.size())
    88       return false;
    89     std::string nan("nan");
    90     return (nan==s2);
     103    return is_equal(s, "nan");
    91104  }
    92105
Note: See TracChangeset for help on using the changeset viewer.