#include "tensorstore/strided_layout.h"
template <typename T0, typename T1>
Index tensorstore::IndexInnerProduct(DimensionIndex n,
                                     
const T0a,
                                     
const T1b);
template <DimensionIndex N, typename T0, typename T1>
Index tensorstore::IndexInnerProduct(const T0aconst T1b);
template <DimensionIndex Rank, typename T0, typename T1>
Index tensorstore::IndexInnerProduct(span<T0, Rank> a,
                                     
span<T1, Rank> b);

Returns the inner product of a and b, wrapping on overflow.

The elements of a and b are converted to Index prior to multiplying.

Parameters:
DimensionIndex n

The length of a and b, if they are specified as pointers.

const T0 *a
span<T0, Rank> a

Array of length n, or the same length as b if specified as a span.

const T1 *b
span<T1, Rank> b

Array of length n, or the same length as a if specified as a span.