Move some more numeric utility code from rtc_base/ to rtc_base/numerics/

Specifically, I'm moving

  histogram_percentile_counter.h
  mathutils.h
  mod_ops.h
  moving_max_counter.h

They shouldn't be part of the API, and moving them to an appropriate
subdirectory of rtc_base/ is a good way to keep track of that.

BUG=webrtc:8445

Change-Id: I78a999984a27ef935be2d7c3136475d5f209adda
Reviewed-on: https://webrtc-review.googlesource.com/20870
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20832}
diff --git a/modules/audio_processing/rms_level_unittest.cc b/modules/audio_processing/rms_level_unittest.cc
index 8082d24..cf7683d 100644
--- a/modules/audio_processing/rms_level_unittest.cc
+++ b/modules/audio_processing/rms_level_unittest.cc
@@ -14,7 +14,7 @@
 #include "api/array_view.h"
 #include "modules/audio_processing/rms_level.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/mathutils.h"
+#include "rtc_base/numerics/mathutils.h"
 #include "rtc_base/numerics/safe_conversions.h"
 #include "test/gtest.h"
 
diff --git a/modules/congestion_controller/transport_feedback_adapter.cc b/modules/congestion_controller/transport_feedback_adapter.cc
index df74789..0989875 100644
--- a/modules/congestion_controller/transport_feedback_adapter.cc
+++ b/modules/congestion_controller/transport_feedback_adapter.cc
@@ -16,7 +16,7 @@
 #include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/mod_ops.h"
+#include "rtc_base/numerics/mod_ops.h"
 #include "system_wrappers/include/field_trial.h"
 
 namespace webrtc {
diff --git a/modules/rtp_rtcp/source/forward_error_correction.cc b/modules/rtp_rtcp/source/forward_error_correction.cc
index f876cff..23c9fa0 100644
--- a/modules/rtp_rtcp/source/forward_error_correction.cc
+++ b/modules/rtp_rtcp/source/forward_error_correction.cc
@@ -23,7 +23,7 @@
 #include "modules/rtp_rtcp/source/ulpfec_header_reader_writer.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
-#include "rtc_base/mod_ops.h"
+#include "rtc_base/numerics/mod_ops.h"
 
 namespace webrtc {
 
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index e7a6cec..873a3eb 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -139,13 +139,13 @@
     "flags.h",
     "format_macros.h",
     "function_view.h",
-    "histogram_percentile_counter.cc",
-    "histogram_percentile_counter.h",
     "ignore_wundef.h",
     "location.cc",
     "location.h",
-    "mod_ops.h",
-    "moving_max_counter.h",
+    "numerics/histogram_percentile_counter.cc",
+    "numerics/histogram_percentile_counter.h",
+    "numerics/mod_ops.h",
+    "numerics/moving_max_counter.h",
     "numerics/safe_compare.h",
     "numerics/safe_conversions.h",
     "numerics/safe_conversions_impl.h",
@@ -610,7 +610,7 @@
       "callback.h",
       "logsinks.cc",
       "logsinks.h",
-      "mathutils.h",
+      "numerics/mathutils.h",
       "optionsfile.cc",
       "optionsfile.h",
       "rollingaccumulator.h",
@@ -870,11 +870,11 @@
       "event_unittest.cc",
       "file_unittest.cc",
       "function_view_unittest.cc",
-      "histogram_percentile_counter_unittest.cc",
       "logging_unittest.cc",
       "md5digest_unittest.cc",
-      "mod_ops_unittest.cc",
-      "moving_max_counter_unittest.cc",
+      "numerics/histogram_percentile_counter_unittest.cc",
+      "numerics/mod_ops_unittest.cc",
+      "numerics/moving_max_counter_unittest.cc",
       "numerics/safe_compare_unittest.cc",
       "numerics/safe_minmax_unittest.cc",
       "onetimeevent_unittest.cc",
diff --git a/rtc_base/histogram_percentile_counter.cc b/rtc_base/numerics/histogram_percentile_counter.cc
similarity index 97%
rename from rtc_base/histogram_percentile_counter.cc
rename to rtc_base/numerics/histogram_percentile_counter.cc
index 959e11d..1032000 100644
--- a/rtc_base/histogram_percentile_counter.cc
+++ b/rtc_base/numerics/histogram_percentile_counter.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "rtc_base/histogram_percentile_counter.h"
+#include "rtc_base/numerics/histogram_percentile_counter.h"
 
 #include <algorithm>
 #include <cmath>
diff --git a/rtc_base/histogram_percentile_counter.h b/rtc_base/numerics/histogram_percentile_counter.h
similarity index 88%
rename from rtc_base/histogram_percentile_counter.h
rename to rtc_base/numerics/histogram_percentile_counter.h
index 5769fb0..4ad2e53 100644
--- a/rtc_base/histogram_percentile_counter.h
+++ b/rtc_base/numerics/histogram_percentile_counter.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef RTC_BASE_HISTOGRAM_PERCENTILE_COUNTER_H_
-#define RTC_BASE_HISTOGRAM_PERCENTILE_COUNTER_H_
+#ifndef RTC_BASE_NUMERICS_HISTOGRAM_PERCENTILE_COUNTER_H_
+#define RTC_BASE_NUMERICS_HISTOGRAM_PERCENTILE_COUNTER_H_
 
 #include <stdint.h>
 #include <map>
@@ -40,4 +40,4 @@
   size_t total_elements_low_;
 };
 }  // namespace rtc
-#endif  // RTC_BASE_HISTOGRAM_PERCENTILE_COUNTER_H_
+#endif  // RTC_BASE_NUMERICS_HISTOGRAM_PERCENTILE_COUNTER_H_
diff --git a/rtc_base/histogram_percentile_counter_unittest.cc b/rtc_base/numerics/histogram_percentile_counter_unittest.cc
similarity index 95%
rename from rtc_base/histogram_percentile_counter_unittest.cc
rename to rtc_base/numerics/histogram_percentile_counter_unittest.cc
index 4943123..a004dba 100644
--- a/rtc_base/histogram_percentile_counter_unittest.cc
+++ b/rtc_base/numerics/histogram_percentile_counter_unittest.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "rtc_base/histogram_percentile_counter.h"
+#include "rtc_base/numerics/histogram_percentile_counter.h"
 
 #include <utility>
 #include <vector>
diff --git a/rtc_base/mathutils.h b/rtc_base/numerics/mathutils.h
similarity index 91%
rename from rtc_base/mathutils.h
rename to rtc_base/numerics/mathutils.h
index 7866a74..5036c8f 100644
--- a/rtc_base/mathutils.h
+++ b/rtc_base/numerics/mathutils.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef RTC_BASE_MATHUTILS_H_
-#define RTC_BASE_MATHUTILS_H_
+#ifndef RTC_BASE_NUMERICS_MATHUTILS_H_
+#define RTC_BASE_NUMERICS_MATHUTILS_H_
 
 #include <math.h>
 #include <type_traits>
@@ -36,4 +36,4 @@
   return static_cast<unsigned_type>(x) - static_cast<unsigned_type>(y);
 }
 
-#endif  // RTC_BASE_MATHUTILS_H_
+#endif  // RTC_BASE_NUMERICS_MATHUTILS_H_
diff --git a/rtc_base/mod_ops.h b/rtc_base/numerics/mod_ops.h
similarity index 96%
rename from rtc_base/mod_ops.h
rename to rtc_base/numerics/mod_ops.h
index 0e5f30f..90d3ed8 100644
--- a/rtc_base/mod_ops.h
+++ b/rtc_base/numerics/mod_ops.h
@@ -8,9 +8,10 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef RTC_BASE_MOD_OPS_H_
-#define RTC_BASE_MOD_OPS_H_
+#ifndef RTC_BASE_NUMERICS_MOD_OPS_H_
+#define RTC_BASE_NUMERICS_MOD_OPS_H_
 
+#include <algorithm>
 #include <limits>
 #include <type_traits>
 
@@ -139,4 +140,4 @@
 
 }  // namespace webrtc
 
-#endif  // RTC_BASE_MOD_OPS_H_
+#endif  // RTC_BASE_NUMERICS_MOD_OPS_H_
diff --git a/rtc_base/mod_ops_unittest.cc b/rtc_base/numerics/mod_ops_unittest.cc
similarity index 98%
rename from rtc_base/mod_ops_unittest.cc
rename to rtc_base/numerics/mod_ops_unittest.cc
index bd68f83..7b03e65 100644
--- a/rtc_base/mod_ops_unittest.cc
+++ b/rtc_base/numerics/mod_ops_unittest.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "rtc_base/mod_ops.h"
+#include "rtc_base/numerics/mod_ops.h"
 #include "test/gtest.h"
 
 namespace webrtc {
diff --git a/rtc_base/moving_max_counter.h b/rtc_base/numerics/moving_max_counter.h
similarity index 96%
rename from rtc_base/moving_max_counter.h
rename to rtc_base/numerics/moving_max_counter.h
index 1e7a728..4595cf3 100644
--- a/rtc_base/moving_max_counter.h
+++ b/rtc_base/numerics/moving_max_counter.h
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef RTC_BASE_MOVING_MAX_COUNTER_H_
-#define RTC_BASE_MOVING_MAX_COUNTER_H_
+#ifndef RTC_BASE_NUMERICS_MOVING_MAX_COUNTER_H_
+#define RTC_BASE_NUMERICS_MOVING_MAX_COUNTER_H_
 
 #include <stdint.h>
 
@@ -113,4 +113,4 @@
 
 }  // namespace rtc
 
-#endif  // RTC_BASE_MOVING_MAX_COUNTER_H_
+#endif  // RTC_BASE_NUMERICS_MOVING_MAX_COUNTER_H_
diff --git a/rtc_base/moving_max_counter_unittest.cc b/rtc_base/numerics/moving_max_counter_unittest.cc
similarity index 97%
rename from rtc_base/moving_max_counter_unittest.cc
rename to rtc_base/numerics/moving_max_counter_unittest.cc
index ff8bac9..a87533f 100644
--- a/rtc_base/moving_max_counter_unittest.cc
+++ b/rtc_base/numerics/moving_max_counter_unittest.cc
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "rtc_base/moving_max_counter.h"
+#include "rtc_base/numerics/moving_max_counter.h"
 #include "test/gtest.h"
 
 TEST(MovingMaxCounter, ReportsMaximumInTheWindow) {
diff --git a/rtc_base/numerics/sequence_number_util.h b/rtc_base/numerics/sequence_number_util.h
index 4a39347..9e4b844 100644
--- a/rtc_base/numerics/sequence_number_util.h
+++ b/rtc_base/numerics/sequence_number_util.h
@@ -15,7 +15,7 @@
 #include <type_traits>
 
 #include "api/optional.h"
-#include "rtc_base/mod_ops.h"
+#include "rtc_base/numerics/mod_ops.h"
 #include "rtc_base/numerics/safe_compare.h"
 
 namespace webrtc {
diff --git a/rtc_base/random_unittest.cc b/rtc_base/random_unittest.cc
index 1877155..d05a16b 100644
--- a/rtc_base/random_unittest.cc
+++ b/rtc_base/random_unittest.cc
@@ -13,7 +13,7 @@
 #include <limits>
 #include <vector>
 
-#include "rtc_base/mathutils.h"  // unsigned difference
+#include "rtc_base/numerics/mathutils.h"  // unsigned difference
 #include "rtc_base/random.h"
 #include "test/gtest.h"
 
diff --git a/video/receive_statistics_proxy.h b/video/receive_statistics_proxy.h
index e874ddc..0e0c5b4 100644
--- a/video/receive_statistics_proxy.h
+++ b/video/receive_statistics_proxy.h
@@ -21,8 +21,8 @@
 #include "common_video/include/frame_callback.h"
 #include "modules/video_coding/include/video_coding_defines.h"
 #include "rtc_base/criticalsection.h"
-#include "rtc_base/histogram_percentile_counter.h"
-#include "rtc_base/moving_max_counter.h"
+#include "rtc_base/numerics/histogram_percentile_counter.h"
+#include "rtc_base/numerics/moving_max_counter.h"
 #include "rtc_base/rate_statistics.h"
 #include "rtc_base/ratetracker.h"
 #include "rtc_base/thread_annotations.h"
diff --git a/voice_engine/transport_feedback_packet_loss_tracker.cc b/voice_engine/transport_feedback_packet_loss_tracker.cc
index 9f71533..869bc5e 100644
--- a/voice_engine/transport_feedback_packet_loss_tracker.cc
+++ b/voice_engine/transport_feedback_packet_loss_tracker.cc
@@ -16,7 +16,7 @@
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/mod_ops.h"
+#include "rtc_base/numerics/mod_ops.h"
 
 namespace {
 constexpr uint16_t kSeqNumHalf = 0x8000u;