1 // Copyright (C) 2018 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
10 namespace InferenceEngine {
13 * @rationale - associative containers doesnt work with remove_if algorithm
19 template<typename Container, typename PredicateT>
20 inline void erase_if(Container &data, const PredicateT &predicate) {
21 for (auto it = std::begin(data); it != std::end(data);) {
30 * @brief multiply vector's values
31 * @param vec - vector with values
32 * @return result of multiplication
35 template<typename TIterator>
36 auto product(TIterator beg, TIterator en) -> typename std::remove_reference<decltype(*beg)>::type {
37 return std::accumulate(beg, en,
38 static_cast<typename std::remove_reference<decltype(*beg)>::type>(1),
39 std::multiplies<typename std::remove_reference<decltype(*beg)>::type>());
41 } // namespace details
42 } // namespace InferenceEngine