diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-01-03 16:10:12 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2024-01-03 16:25:06 +0000 |
commit | c13fd050cf3131595459a6477adf2f92b3cdae5a (patch) | |
tree | a4926907ba4b446a654e293860f2b8fa5612d370 /searchlib/src | |
parent | f4bdeedaba71200b999804d9ce388dc528a636d7 (diff) |
Unify on +/- infinity for floating point numbers.
Diffstat (limited to 'searchlib/src')
-rw-r--r-- | searchlib/src/tests/query/streaming_query_test.cpp | 28 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/query/query_term_simple.cpp | 14 |
2 files changed, 21 insertions, 21 deletions
diff --git a/searchlib/src/tests/query/streaming_query_test.cpp b/searchlib/src/tests/query/streaming_query_test.cpp index e1acb3b467f..a4e84a4d384 100644 --- a/searchlib/src/tests/query/streaming_query_test.cpp +++ b/searchlib/src/tests/query/streaming_query_test.cpp @@ -75,7 +75,7 @@ TEST(StreamingQueryTest, test_query_language) EXPECT_EQ(ia, std::numeric_limits<int64_t>::min()); EXPECT_EQ(ib, 6); EXPECT_TRUE(q.getAsFloatTerm(da, db)); - EXPECT_EQ(da, -std::numeric_limits<double>::max()); + EXPECT_EQ(da, -std::numeric_limits<double>::infinity()); EXPECT_LT(db, 7); EXPECT_GT(db, 6.99); } @@ -86,7 +86,7 @@ TEST(StreamingQueryTest, test_query_language) EXPECT_EQ(ia, std::numeric_limits<int64_t>::min()); EXPECT_EQ(ib, 7); EXPECT_TRUE(q.getAsFloatTerm(da, db)); - EXPECT_EQ(da, -std::numeric_limits<double>::max()); + EXPECT_EQ(da, -std::numeric_limits<double>::infinity()); EXPECT_EQ(db, 7); } @@ -98,7 +98,7 @@ TEST(StreamingQueryTest, test_query_language) EXPECT_TRUE(q.getAsFloatTerm(da, db)); EXPECT_GT(da, 7); EXPECT_LT(da, 7.01); - EXPECT_EQ(db, std::numeric_limits<double>::max()); + EXPECT_EQ(db, std::numeric_limits<double>::infinity()); } { @@ -108,7 +108,7 @@ TEST(StreamingQueryTest, test_query_language) EXPECT_EQ(ib, std::numeric_limits<int64_t>::max()); EXPECT_TRUE(q.getAsFloatTerm(da, db)); EXPECT_EQ(da, 7); - EXPECT_EQ(db, std::numeric_limits<double>::max()); + EXPECT_EQ(db, std::numeric_limits<double>::infinity()); } { @@ -185,7 +185,7 @@ TEST(StreamingQueryTest, test_query_language) EXPECT_EQ(ia, std::numeric_limits<int64_t>::min()); EXPECT_EQ(ib, -8); EXPECT_TRUE(q.getAsFloatTerm(da, db)); - EXPECT_EQ(da, -std::numeric_limits<double>::max()); + EXPECT_EQ(da, -std::numeric_limits<double>::infinity()); EXPECT_LT(db, -7); EXPECT_GT(db, -7.01); } @@ -196,7 +196,7 @@ TEST(StreamingQueryTest, test_query_language) EXPECT_EQ(ia, std::numeric_limits<int64_t>::min()); EXPECT_EQ(ib, -7); EXPECT_TRUE(q.getAsFloatTerm(da, db)); - EXPECT_EQ(da, -std::numeric_limits<double>::max()); + EXPECT_EQ(da, -std::numeric_limits<double>::infinity()); EXPECT_EQ(db, -7); } @@ -206,7 +206,7 @@ TEST(StreamingQueryTest, test_query_language) EXPECT_EQ(ia, std::numeric_limits<int64_t>::min()); EXPECT_EQ(ib, -7); EXPECT_TRUE(q.getAsFloatTerm(da, db)); - EXPECT_EQ(da, -std::numeric_limits<double>::max()); + EXPECT_EQ(da, -std::numeric_limits<double>::infinity()); EXPECT_EQ(db, -7); } @@ -218,7 +218,7 @@ TEST(StreamingQueryTest, test_query_language) EXPECT_TRUE(q.getAsFloatTerm(da, db)); EXPECT_GT(da, -7); EXPECT_LT(da, -6.99); - EXPECT_EQ(db, std::numeric_limits<double>::max()); + EXPECT_EQ(db, std::numeric_limits<double>::infinity()); } { @@ -228,7 +228,7 @@ TEST(StreamingQueryTest, test_query_language) EXPECT_EQ(ib, std::numeric_limits<int64_t>::max()); EXPECT_TRUE(q.getAsFloatTerm(da, db)); EXPECT_EQ(da, -7); - EXPECT_EQ(db, std::numeric_limits<double>::max()); + EXPECT_EQ(db, std::numeric_limits<double>::infinity()); } { @@ -238,7 +238,7 @@ TEST(StreamingQueryTest, test_query_language) EXPECT_EQ(ib, std::numeric_limits<int64_t>::max()); EXPECT_TRUE(q.getAsFloatTerm(da, db)); EXPECT_EQ(da, -7); - EXPECT_EQ(db, std::numeric_limits<double>::max()); + EXPECT_EQ(db, std::numeric_limits<double>::infinity()); } { @@ -648,8 +648,8 @@ TEST(StreamingQueryTest, require_that_ascending_range_can_be_specified_with_limi EXPECT_TRUE(ascending_query.getAsFloatTerm(low_double, high_double)); EXPECT_EQ(std::numeric_limits<int64_t>::min(), low_integer); EXPECT_EQ(std::numeric_limits<int64_t>::max(), high_integer); - EXPECT_EQ(-std::numeric_limits<double>::max(), low_double); - EXPECT_EQ(std::numeric_limits<double>::max(), high_double); + EXPECT_EQ(-std::numeric_limits<double>::infinity(), low_double); + EXPECT_EQ(std::numeric_limits<double>::infinity(), high_double); EXPECT_EQ(500, ascending_query.getRangeLimit()); } @@ -667,8 +667,8 @@ TEST(StreamingQueryTest, require_that_descending_range_can_be_specified_with_lim EXPECT_TRUE(descending_query.getAsFloatTerm(low_double, high_double)); EXPECT_EQ(std::numeric_limits<int64_t>::min(), low_integer); EXPECT_EQ(std::numeric_limits<int64_t>::max(), high_integer); - EXPECT_EQ(-std::numeric_limits<double>::max(), low_double); - EXPECT_EQ(std::numeric_limits<double>::max(), high_double); + EXPECT_EQ(-std::numeric_limits<double>::infinity(), low_double); + EXPECT_EQ(std::numeric_limits<double>::infinity(), high_double); EXPECT_EQ(-500, descending_query.getRangeLimit()); } diff --git a/searchlib/src/vespa/searchlib/query/query_term_simple.cpp b/searchlib/src/vespa/searchlib/query/query_term_simple.cpp index 77e245c3b7d..0550ba5f684 100644 --- a/searchlib/src/vespa/searchlib/query/query_term_simple.cpp +++ b/searchlib/src/vespa/searchlib/query/query_term_simple.cpp @@ -51,7 +51,7 @@ struct FloatDecoder { for (;q < qend && isspace(*q); q++); std::from_chars_result err = std::from_chars(q, qend, v); if (err.ec == std::errc::result_out_of_range) { - v = (*q == '-') ? std::numeric_limits<T>::min() : std::numeric_limits<T>::max(); + v = (*q == '-') ? -std::numeric_limits<T>::infinity() : std::numeric_limits<T>::infinity(); } *end = err.ptr; return v; @@ -84,8 +84,8 @@ QueryTermSimple::getFloatRange() const noexcept RangeResult<N> res; res.valid = valid; if (!valid) { - res.low = std::numeric_limits<N>::max(); - res.high = - std::numeric_limits<N>::max(); + res.low = std::numeric_limits<N>::infinity(); + res.high = -std::numeric_limits<N>::infinity(); res.adjusted = true; } else { res.low = lowRaw; @@ -209,15 +209,15 @@ bool QueryTermSimple::getAsIntegerTerm(int64_t & lower, int64_t & upper) const n bool QueryTermSimple::getAsFloatTerm(double & lower, double & upper) const noexcept { - lower = - std::numeric_limits<double>::max(); - upper = std::numeric_limits<double>::max(); + lower = -std::numeric_limits<double>::infinity(); + upper = std::numeric_limits<double>::infinity(); return getAsNumericTerm(lower, upper, FloatDecoder<double>()); } bool QueryTermSimple::getAsFloatTerm(float & lower, float & upper) const noexcept { - lower = - std::numeric_limits<float>::max(); - upper = std::numeric_limits<float>::max(); + lower = -std::numeric_limits<float>::infinity(); + upper = std::numeric_limits<float>::infinity(); return getAsNumericTerm(lower, upper, FloatDecoder<float>()); } |