7#ifndef INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_ALGORITHM_INNER_PRODUCT_HPP_
8#define INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_ALGORITHM_INNER_PRODUCT_HPP_
16#include "arene/base/algorithm/detail/generalized_transform_reduce.hpp"
17#include "arene/base/algorithm/detail/traits.hpp"
18#include "arene/base/compiler_support/cpp14_inline.hpp"
19#include "arene/base/constraints/constraints.hpp"
20#include "arene/base/stdlib_choice/enable_if.hpp"
21#include "arene/base/stdlib_choice/is_assignable.hpp"
22#include "arene/base/stdlib_choice/is_move_constructible.hpp"
23#include "arene/base/stdlib_choice/move.hpp"
24#include "arene/base/stdlib_choice/multiplies.hpp"
25#include "arene/base/stdlib_choice/plus.hpp"
26#include "arene/base/type_traits/is_copyable.hpp"
27#include "arene/base/type_traits/is_invocable.hpp"
28#include "arene/base/type_traits/iterator_category_traits.hpp"
37namespace algorithm_detail {
38namespace inner_product_detail {
41class inner_product_fn {
95 std::enable_if_t<is_input_iterator_v<InputIt1>>,
96 std::enable_if_t<is_input_iterator_v<InputIt2>>,
97 std::enable_if_t<is_copyable_v<Value>>,
106 iter_reference_t<InputIt1>,
107 iter_reference_t<InputIt2>
110 >::value>> =
nullptr>
111 constexpr auto operator()(
117 Multiplies multiplies
119 std::is_nothrow_move_constructible<Value>::value &&
120 is_nothrow_invocable_v<
121 generalized_transform_reduce,
122 generalized_transform_reduce::default_reduce_value_policy<Value>,
132 using policy = generalized_transform_reduce::default_reduce_value_policy<Value>;
134 return policy::access(
135 generalized_transform_reduce{}(
191 std::enable_if_t<is_input_iterator_v<InputIt1>>,
192 std::enable_if_t<is_input_iterator_v<InputIt2>>,
193 std::enable_if_t<is_copyable_v<Value>>,
194 std::enable_if_t<std::is_assignable<
201 iter_reference_t<InputIt1>,
202 iter_reference_t<InputIt2>>>>::value>> =
nullptr>
203 constexpr auto operator()(
209 noexcept(is_nothrow_invocable_v<
216 std::multiplies<>&&>) -> Value {
Definition array_exceptions_disabled.cpp:11
ARENE_CPP14_INLINE_VARIABLE(algorithm_detail::inner_product_detail::inner_product_fn, inner_product)
Copyright 2026, Toyota Motor Corporation.
Definition array_exceptions_disabled.cpp:10