vendor/fastText/src/utils.h in fasttext-0.1.2 vs vendor/fastText/src/utils.h in fasttext-0.1.3
- old
+ new
@@ -9,11 +9,13 @@
#pragma once
#include "real.h"
#include <algorithm>
+#include <chrono>
#include <fstream>
+#include <ostream>
#include <vector>
#if defined(__clang__) || defined(__GNUC__)
#define FASTTEXT_DEPRECATED(msg) __attribute__((__deprecated__(msg)))
#elif defined(_MSC_VER)
@@ -35,9 +37,36 @@
template <typename T>
bool contains(const std::vector<T>& container, const T& value) {
return std::find(container.begin(), container.end(), value) !=
container.end();
}
+
+template <typename T1, typename T2>
+bool containsSecond(
+ const std::vector<std::pair<T1, T2>>& container,
+ const T2& value) {
+ return std::find_if(
+ container.begin(),
+ container.end(),
+ [&value](const std::pair<T1, T2>& item) {
+ return item.second == value;
+ }) != container.end();
+}
+
+double getDuration(
+ const std::chrono::steady_clock::time_point& start,
+ const std::chrono::steady_clock::time_point& end);
+
+class ClockPrint {
+ public:
+ explicit ClockPrint(int32_t duration);
+ friend std::ostream& operator<<(std::ostream& out, const ClockPrint& me);
+
+ private:
+ int32_t duration_;
+};
+
+bool compareFirstLess(const std::pair<double, double>& l, const double& r);
} // namespace utils
} // namespace fasttext