diff --git a/math/vecops/inc/ROOT/TVec.hxx b/math/vecops/inc/ROOT/TVec.hxx
index fb418a97f4112e41f96b26e19e781ef9fd0a99ed..ded5fe7cb0235de77777a8b124dedc128504f22e 100644
--- a/math/vecops/inc/ROOT/TVec.hxx
+++ b/math/vecops/inc/ROOT/TVec.hxx
@@ -81,24 +81,6 @@ inline void CheckSizes(std::size_t s0, std::size_t s1, std::string_view opName)
    }
 }
 
-template <typename T0, typename T1, typename F>
-inline auto Operate(const TVec<T0> &v0, const TVec<T1> &v1, std::string_view opName, F &&f)
-   -> TVec<decltype(f(v0[0], v1[1]))>
-{
-   CheckSizes(v0.size(), v1.size(), opName);
-   TVec<decltype(f(v0[0], v1[1]))> w(v0.size());
-   std::transform(v0.begin(), v0.end(), v1.begin(), w.begin(), std::forward<F>(f));
-   return w;
-}
-
-template <typename T, typename F>
-inline auto Operate(const TVec<T> &v, F &&f) -> TVec<decltype(f(v[0]))>
-{
-   TVec<decltype(f(v[0]))> w(v.size());
-   std::transform(v.begin(), v.end(), w.begin(), std::forward<F>(f));
-   return w;
-}
-
 } // End of VecOps NS
 
 } // End of Internal NS
@@ -671,7 +653,9 @@ double StdDev(const TVec<T> &v)
 template <typename T, typename F>
 auto Map(const TVec<T> &v, F &&f) -> TVec<decltype(f(v[0]))>
 {
-   return ROOT::Internal::VecOps::Operate(v, std::forward<F>(f));
+   TVec<decltype(f(v[0]))> ret(v.size());
+   std::transform(v.begin(), v.end(), ret.begin(), f);
+   return ret;
 }
 
 /// Create a new collection with the elements passing the filter expressed by the predicate