Inline TwoSum into accurate_norm.h

Move TwoSum directly into namespace ceres::internal in accurate_norm.h
and remove the single-use compensated_math.h header.

Change-Id: Ida0d79df9921e66677bd5463c0d5c22d9bc194a3
diff --git a/include/ceres/accurate_norm.h b/include/ceres/accurate_norm.h
index 37fbf1b..63536ac 100644
--- a/include/ceres/accurate_norm.h
+++ b/include/ceres/accurate_norm.h
@@ -65,8 +65,6 @@
 #include <type_traits>
 #include <utility>
 
-#include "ceres/internal/compensated_math.h"
-
 namespace ceres {
 
 namespace internal {
@@ -213,6 +211,18 @@
   return maximum;
 }
 
+// Similar to Fast2Sum, but without requiring ordering or a specific radix.
+template <typename T>
+constexpr std::pair<T, T> TwoSum(T a, T b) noexcept {
+  const T s = a + b;
+  const T a_prime = s - b;
+  const T b_prime = s - a_prime;
+  const T delta_a = a - a_prime;
+  const T delta_b = b - b_prime;
+  const T t = delta_a + delta_b;
+  return std::make_pair(s, t);
+}
+
 // Computes the sum of squares x^2 + y^2 + ... as the rounded sum and its
 // rounding error.
 template <typename T, typename... Args>
diff --git a/include/ceres/internal/compensated_math.h b/include/ceres/internal/compensated_math.h
deleted file mode 100644
index 8efc7e5..0000000
--- a/include/ceres/internal/compensated_math.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// Ceres Solver - A fast non-linear least squares minimizer
-// Copyright 2026 Google Inc. All rights reserved.
-// http://ceres-solver.org/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// * Redistributions of source code must retain the above copyright notice,
-//   this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above copyright notice,
-//   this list of conditions and the following disclaimer in the documentation
-//   and/or other materials provided with the distribution.
-// * Neither the name of Google Inc. nor the names of its contributors may be
-//   used to endorse or promote products derived from this software without
-//   specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: sergiu.deitsch@gmail.com (Sergiu Deitsch)
-
-#ifndef CERES_PUBLIC_INTERNAL_COMPENSATED_MATH_H_
-#define CERES_PUBLIC_INTERNAL_COMPENSATED_MATH_H_
-
-#include <type_traits>
-#include <utility>
-
-namespace ceres::internal {
-
-// Similar to Fast2Sum, but without requiring ordering or a specific radix.
-template <typename T>
-constexpr auto TwoSum(T a, T b)
-    -> std::enable_if_t<std::is_floating_point_v<T>, std::pair<T, T>> {
-  const T s = a + b;
-  const T a_prime = s - b;
-  const T b_prime = s - a_prime;
-  const T delta_a = a - a_prime;
-  const T delta_b = b - b_prime;
-  const T t = delta_a + delta_b;
-  return std::make_pair(s, t);
-}
-
-}  // namespace ceres::internal
-
-#endif  // CERES_PUBLIC_INTERNAL_COMPENSATED_MATH_H_