This is an automated email from the ASF dual-hosted git repository.
panxiaolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 6746c63a328 [Chore](test) remove unused code of zipf_distribution
(#49248)
6746c63a328 is described below
commit 6746c63a328453145879f3a8b4e44539e97fec51
Author: Pxl <[email protected]>
AuthorDate: Thu Mar 20 14:25:42 2025 +0800
[Chore](test) remove unused code of zipf_distribution (#49248)
### What problem does this PR solve?
remove unused code of zipf_distribution
### Check List (For Author)
- Test <!-- At least one of them must be included. -->
- [ ] Regression test
- [ ] Unit Test
- [ ] Manual test (add detailed scripts or steps below)
- [x] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [ ] Previous test can cover this change.
- [ ] No code files have been changed.
- [x] Other reason <!-- Add your reason? -->
- Behavior changed:
- [x] No.
- [ ] Yes. <!-- Explain the behavior change -->
- Does this need documentation?
- [x] No.
- [ ] Yes. <!-- Add document PR link here. eg:
https://github.com/apache/doris-website/pull/1214 -->
### Check List (For Reviewer who merge this PR)
- [x] Confirm the release note
- [x] Confirm test cases
- [x] Confirm document
- [x] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
---
be/test/exprs/zipf_distribution.h | 100 --------------------------------------
1 file changed, 100 deletions(-)
diff --git a/be/test/exprs/zipf_distribution.h
b/be/test/exprs/zipf_distribution.h
deleted file mode 100644
index 1c7c5fc396a..00000000000
--- a/be/test/exprs/zipf_distribution.h
+++ /dev/null
@@ -1,100 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-#pragma once
-
-#include <algorithm>
-#include <cmath>
-#include <random>
-
-/** Refer to
https://stackoverflow.com/questions/9983239/how-to-generate-zipf-distributed-numbers-efficiently
- * Zipf-like random distribution.
- *
- * "Rejection-inversion to generate variates from monotone discrete
- * distributions", Wolfgang Hörmann and Gerhard Derflinger
- * ACM TOMACS 6.3 (1996): 169-184
- */
-template <class IntType = unsigned long, class RealType = double>
-class zipf_distribution {
-public:
- typedef RealType input_type;
- typedef IntType result_type;
-
- static_assert(std::numeric_limits<IntType>::is_integer, "");
- static_assert(!std::numeric_limits<RealType>::is_integer, "");
-
- zipf_distribution(const IntType n = std::numeric_limits<IntType>::max(),
const RealType q = 1.0)
- : n(n), q(q), H_x1(H(1.5) - 1.0), H_n(H(n + 0.5)), dist(H_x1, H_n)
{}
-
- IntType operator()(std::mt19937& rng) {
- while (true) {
- const RealType u = dist(rng);
- const RealType x = H_inv(u);
- const IntType k = clamp<IntType>(std::round(x), 1, n);
- if (u >= H(k + 0.5) - h(k)) {
- return k;
- }
- }
- }
-
-private:
- /** Clamp x to [min, max]. */
- template <typename T>
- static constexpr T clamp(const T x, const T min, const T max) {
- return std::max(min, std::min(max, x));
- }
-
- /** exp(x) - 1 / x */
- static double expxm1bx(const double x) {
- return (std::abs(x) > epsilon) ? std::expm1(x) / x
- : (1.0 + x / 2.0 * (1.0 + x / 3.0 *
(1.0 + x / 4.0)));
- }
-
- /** H(x) = log(x) if q == 1, (x^(1-q) - 1)/(1 - q) otherwise.
- * H(x) is an integral of h(x).
- *
- * Note the numerator is one less than in the paper order to work with all
- * positive q.
- */
- const RealType H(const RealType x) {
- const RealType log_x = std::log(x);
- return expxm1bx((1.0 - q) * log_x) * log_x;
- }
-
- /** log(1 + x) / x */
- static RealType log1pxbx(const RealType x) {
- return (std::abs(x) > epsilon) ? std::log1p(x) / x
- : 1.0 - x * ((1 / 2.0) - x * ((1 / 3.0)
- x * (1 / 4.0)));
- }
-
- /** The inverse function of H(x) */
- const RealType H_inv(const RealType x) {
- const RealType t = std::max(-1.0, x * (1.0 - q));
- return std::exp(log1pxbx(t) * x);
- }
-
- /** That hat function h(x) = 1 / (x ^ q) */
- const RealType h(const RealType x) { return std::exp(-q * std::log(x)); }
-
- static constexpr RealType epsilon = 1e-8;
-
- IntType n; ///< Number of elements
- RealType q; ///< Exponent
- RealType H_x1; ///< H(x_1)
- RealType H_n; ///< H(n)
- std::uniform_real_distribution<RealType> dist; ///< [H(x_1), H(n)]
-};
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]