summaryrefslogtreecommitdiffstats
path: root/yql/essentials/udfs/common/math/lib
diff options
context:
space:
mode:
authorvvvv <[email protected]>2025-10-06 13:26:25 +0300
committervvvv <[email protected]>2025-10-06 14:06:25 +0300
commiteca8ce9cb1613d5c983185c4e43c20651a9638aa (patch)
tree61ee5ae779948e61af9a7691d19eaa2c09869121 /yql/essentials/udfs/common/math/lib
parent4adf7eecae16a9b228b28cc5f64c27ef69ad5ec2 (diff)
YQL-20086 udfs
init commit_hash:f9684778bf1ea956965f2360b80b91edb7d4ffbe
Diffstat (limited to 'yql/essentials/udfs/common/math/lib')
-rw-r--r--yql/essentials/udfs/common/math/lib/erfinv.cpp6
-rw-r--r--yql/essentials/udfs/common/math/lib/erfinv.h2
-rw-r--r--yql/essentials/udfs/common/math/lib/round.h24
-rw-r--r--yql/essentials/udfs/common/math/lib/round_ut.cpp98
-rw-r--r--yql/essentials/udfs/common/math/lib/ut/ya.make2
-rw-r--r--yql/essentials/udfs/common/math/lib/ya.make2
6 files changed, 69 insertions, 65 deletions
diff --git a/yql/essentials/udfs/common/math/lib/erfinv.cpp b/yql/essentials/udfs/common/math/lib/erfinv.cpp
index def902860c3..c7626b8faf0 100644
--- a/yql/essentials/udfs/common/math/lib/erfinv.cpp
+++ b/yql/essentials/udfs/common/math/lib/erfinv.cpp
@@ -8,8 +8,8 @@ template <size_t N>
static double PolEval(double x, const std::array<double, N>& coef) {
static_assert(N > 0, "Array coef[] should not be empty.");
return std::accumulate(coef.crbegin() + 1, coef.crend(), coef[N - 1],
- [x] (auto init, auto cur) {
- return std::move(init) * x + cur;
+ [x](auto init, auto cur) {
+ return std::move(init) * x + cur;
});
}
@@ -111,4 +111,4 @@ double ErfInv(double x) {
return ans * sign;
}
-}
+} // namespace NMathUdf
diff --git a/yql/essentials/udfs/common/math/lib/erfinv.h b/yql/essentials/udfs/common/math/lib/erfinv.h
index 1ced5a07e65..23c129e6572 100644
--- a/yql/essentials/udfs/common/math/lib/erfinv.h
+++ b/yql/essentials/udfs/common/math/lib/erfinv.h
@@ -4,4 +4,4 @@ namespace NMathUdf {
double ErfInv(double x);
-}
+} // namespace NMathUdf
diff --git a/yql/essentials/udfs/common/math/lib/round.h b/yql/essentials/udfs/common/math/lib/round.h
index f59700da88f..815c3f6173a 100644
--- a/yql/essentials/udfs/common/math/lib/round.h
+++ b/yql/essentials/udfs/common/math/lib/round.h
@@ -55,23 +55,23 @@ inline std::optional<i64> NearbyIntImpl(double value, decltype(FE_DOWNWARD) mode
if (res < double(std::numeric_limits<i64>::min() + 513) || res > double(std::numeric_limits<i64>::max() - 512)) {
return {};
}
-
+
return static_cast<i64>(res);
}
inline std::optional<i64> NearbyInt(double value, ui32 mode) {
switch (mode) {
- case 0:
- return NearbyIntImpl(value, FE_DOWNWARD);
- case 1:
- return NearbyIntImpl(value, FE_TONEAREST);
- case 2:
- return NearbyIntImpl(value, FE_TOWARDZERO);
- case 3:
- return NearbyIntImpl(value, FE_UPWARD);
- default:
- return {};
+ case 0:
+ return NearbyIntImpl(value, FE_DOWNWARD);
+ case 1:
+ return NearbyIntImpl(value, FE_TONEAREST);
+ case 2:
+ return NearbyIntImpl(value, FE_TOWARDZERO);
+ case 3:
+ return NearbyIntImpl(value, FE_UPWARD);
+ default:
+ return {};
}
}
-}
+} // namespace NMathUdf
diff --git a/yql/essentials/udfs/common/math/lib/round_ut.cpp b/yql/essentials/udfs/common/math/lib/round_ut.cpp
index 4d0e96e4dc3..d791086fa8c 100644
--- a/yql/essentials/udfs/common/math/lib/round_ut.cpp
+++ b/yql/essentials/udfs/common/math/lib/round_ut.cpp
@@ -7,64 +7,64 @@
using namespace NMathUdf;
Y_UNIT_TEST_SUITE(TRound) {
- Y_UNIT_TEST(Basic) {
- double value = 1930.0 / 3361.0;
- double result = RoundToDecimal<long double>(value, -3);
- double answer = 0.574;
- UNIT_ASSERT_VALUES_EQUAL(
- HexEncode(&result, sizeof(double)),
- HexEncode(&answer, sizeof(double)));
- }
+Y_UNIT_TEST(Basic) {
+ double value = 1930.0 / 3361.0;
+ double result = RoundToDecimal<long double>(value, -3);
+ double answer = 0.574;
+ UNIT_ASSERT_VALUES_EQUAL(
+ HexEncode(&result, sizeof(double)),
+ HexEncode(&answer, sizeof(double)));
+}
- Y_UNIT_TEST(Mod) {
- UNIT_ASSERT_VALUES_EQUAL(*Mod(-1, 7), 6);
- UNIT_ASSERT_VALUES_EQUAL(*Mod(1, 7), 1);
- UNIT_ASSERT_VALUES_EQUAL(*Mod(0, 7), 0);
+Y_UNIT_TEST(Mod) {
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(-1, 7), 6);
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(1, 7), 1);
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(0, 7), 0);
- UNIT_ASSERT_VALUES_EQUAL(*Mod(-1, -7), -1);
- UNIT_ASSERT_VALUES_EQUAL(*Mod(1, -7), -6);
- UNIT_ASSERT_VALUES_EQUAL(*Mod(0, -7), 0);
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(-1, -7), -1);
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(1, -7), -6);
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(0, -7), 0);
- UNIT_ASSERT_VALUES_EQUAL(*Mod(-15, 7), 6);
- UNIT_ASSERT_VALUES_EQUAL(*Mod(15, 7), 1);
- UNIT_ASSERT_VALUES_EQUAL(*Mod(14, 7), 0);
- UNIT_ASSERT_VALUES_EQUAL(*Mod(-14, 7), 0);
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(-15, 7), 6);
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(15, 7), 1);
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(14, 7), 0);
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(-14, 7), 0);
- UNIT_ASSERT_VALUES_EQUAL(*Mod(-15, -7), -1);
- UNIT_ASSERT_VALUES_EQUAL(*Mod(15, -7), -6);
- UNIT_ASSERT_VALUES_EQUAL(*Mod(14, -7), 0);
- UNIT_ASSERT_VALUES_EQUAL(*Mod(-14, -7), 0);
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(-15, -7), -1);
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(15, -7), -6);
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(14, -7), 0);
+ UNIT_ASSERT_VALUES_EQUAL(*Mod(-14, -7), 0);
- UNIT_ASSERT(!Mod(-14, 0));
- }
+ UNIT_ASSERT(!Mod(-14, 0));
+}
- Y_UNIT_TEST(Rem) {
- UNIT_ASSERT_VALUES_EQUAL(*Rem(-1, 7), -1);
- UNIT_ASSERT_VALUES_EQUAL(*Rem(1, 7), 1);
- UNIT_ASSERT_VALUES_EQUAL(*Rem(0, 7), 0);
+Y_UNIT_TEST(Rem) {
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(-1, 7), -1);
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(1, 7), 1);
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(0, 7), 0);
- UNIT_ASSERT_VALUES_EQUAL(*Rem(-1, -7), -1);
- UNIT_ASSERT_VALUES_EQUAL(*Rem(1, -7), 1);
- UNIT_ASSERT_VALUES_EQUAL(*Rem(0, -7), 0);
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(-1, -7), -1);
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(1, -7), 1);
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(0, -7), 0);
- UNIT_ASSERT_VALUES_EQUAL(*Rem(-15, 7), -1);
- UNIT_ASSERT_VALUES_EQUAL(*Rem(15, 7), 1);
- UNIT_ASSERT_VALUES_EQUAL(*Rem(14, 7), 0);
- UNIT_ASSERT_VALUES_EQUAL(*Rem(-14, 7), 0);
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(-15, 7), -1);
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(15, 7), 1);
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(14, 7), 0);
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(-14, 7), 0);
- UNIT_ASSERT_VALUES_EQUAL(*Rem(-15, -7), -1);
- UNIT_ASSERT_VALUES_EQUAL(*Rem(15, -7), 1);
- UNIT_ASSERT_VALUES_EQUAL(*Rem(14, -7), 0);
- UNIT_ASSERT_VALUES_EQUAL(*Rem(-14, -7), 0);
- UNIT_ASSERT(!Rem(-14, 0));
- }
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(-15, -7), -1);
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(15, -7), 1);
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(14, -7), 0);
+ UNIT_ASSERT_VALUES_EQUAL(*Rem(-14, -7), 0);
+ UNIT_ASSERT(!Rem(-14, 0));
+}
- Y_UNIT_TEST(NearbyInt) {
- const i64 maxV = 9223372036854774784ll;
- const i64 minV = -9223372036854774784ll;
- UNIT_ASSERT_VALUES_EQUAL((i64)(double)(maxV), maxV);
- UNIT_ASSERT_VALUES_EQUAL((i64)(double)(minV), minV);
+Y_UNIT_TEST(NearbyInt) {
+ const i64 maxV = 9223372036854774784ll;
+ const i64 minV = -9223372036854774784ll;
+ UNIT_ASSERT_VALUES_EQUAL((i64)(double)(maxV), maxV);
+ UNIT_ASSERT_VALUES_EQUAL((i64)(double)(minV), minV);
- UNIT_ASSERT_VALUES_UNEQUAL((i64)(double)(maxV + 1), maxV + 1);
- }
+ UNIT_ASSERT_VALUES_UNEQUAL((i64)(double)(maxV + 1), maxV + 1);
}
+} // Y_UNIT_TEST_SUITE(TRound)
diff --git a/yql/essentials/udfs/common/math/lib/ut/ya.make b/yql/essentials/udfs/common/math/lib/ut/ya.make
index c1efcde3b47..2461b36ab3d 100644
--- a/yql/essentials/udfs/common/math/lib/ut/ya.make
+++ b/yql/essentials/udfs/common/math/lib/ut/ya.make
@@ -2,6 +2,8 @@ IF (OS_LINUX)
IF (NOT WITH_VALGRIND)
UNITTEST_FOR(yql/essentials/udfs/common/math/lib)
+ ENABLE(YQL_STYLE_CPP)
+
SRCS(
round_ut.cpp
)
diff --git a/yql/essentials/udfs/common/math/lib/ya.make b/yql/essentials/udfs/common/math/lib/ya.make
index 54b882a8438..3c0faeb996a 100644
--- a/yql/essentials/udfs/common/math/lib/ya.make
+++ b/yql/essentials/udfs/common/math/lib/ya.make
@@ -1,5 +1,7 @@
LIBRARY()
+ENABLE(YQL_STYLE_CPP)
+
SRCS(
erfinv.cpp
)