diff --git a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.cpp b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.cpp
index 0c56c6e..af6472a 100644
--- a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.cpp
+++ b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.cpp
@@ -84,25 +84,6 @@
   return m_coefficients[m_coefficients.size() - 1 - degree];
 }
 
-int32_t CBC_ReedSolomonGF256Poly::EvaluateAt(int32_t a) {
-  if (a == 0)
-    return GetCoefficients(0);
-
-  size_t size = m_coefficients.size();
-  if (a == 1) {
-    int32_t result = 0;
-    for (size_t i = 0; i < size; i++)
-      result = CBC_ReedSolomonGF256::AddOrSubtract(result, m_coefficients[i]);
-    return result;
-  }
-  int32_t result = m_coefficients[0];
-  for (size_t j = 1; j < size; j++) {
-    result = CBC_ReedSolomonGF256::AddOrSubtract(m_field->Multiply(a, result),
-                                                 m_coefficients[j]);
-  }
-  return result;
-}
-
 std::unique_ptr<CBC_ReedSolomonGF256Poly> CBC_ReedSolomonGF256Poly::Clone()
     const {
   auto temp = pdfium::MakeUnique<CBC_ReedSolomonGF256Poly>();
diff --git a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h
index 810b478..5cd6b85 100644
--- a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h
+++ b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h
@@ -26,7 +26,6 @@
   const std::vector<int32_t>& GetCoefficients() const;
   int32_t GetDegree() const;
   bool IsZero() const;
-  int32_t EvaluateAt(int32_t a);
   std::unique_ptr<CBC_ReedSolomonGF256Poly> AddOrSubtract(
       const CBC_ReedSolomonGF256Poly* other);
   std::unique_ptr<CBC_ReedSolomonGF256Poly> Multiply(
