![]() |
Home | Libraries | People | FAQ | More |
template<class SinglePassRange1, class SinglePassRange2, class Value> Value inner_product( const SinglePassRange1& rng1, const SinglePassRange2& rng2, Value init ); template<class SinglePassRange1, class SinglePassRange2, class Value, class BinaryOperation1, class BinaryOperation2> Value inner_product( const SinglePassRange1& rng1, const SinglePassRange2& rng2, Value init, BinaryOperation1 op1 );
inner_product calculates
a generalised inner product of the range rng1
and rng2.
For further information on the inner_product
algorithm please see inner_product.
Defined in the header file boost/range/numeric.hpp
SinglePassRange1 is
a model of the Single
Pass Range Concept.
SinglePassRange2 is
a model of the Single
Pass Range Concept.
Value is a model of
the AssignableConcept.
x is an object of
type Value, y is an object of SinglePassRange1's
value type, and z is
an object of SinglePassRange2's
value type, then x + y * z
is defined.
x
+ y
* z
is convertible to Value.
SinglePassRange1 is
a model of the Single
Pass Range Concept.
SinglePassRange2 is
a model of the Single
Pass Range Concept.
Value is a model of
the AssignableConcept.
BinaryOperation1 is
a model of the BinaryFunctionConcept.
BinaryOperation2 is
a model of the BinaryFunctionConcept.
SinglePassRange1
is convertible to the first argument type of BinaryOperation2.
SinglePassRange2
is convertible to the second argument type of BinaryOperation2.
Value is convertible
to the value type of BinaryOperation1.
BinaryOperation2
is convertible to the second argument type of BinaryOperation1.
BinaryOperation1
is convertible to Value.
distance(rng2) >= distance(rng1) is a valid range.
Linear. Exactly distance(rng).