dotProduct

fnCommonType!(ElementType!(Range1), ElementType!(Range2)) dotProduct(Range1, Range2)(Range1 a, Range2 b) if (isInputRange!(Range1) && isInputRange!(Range2) && !(isArray!(Range1) && isArray!(Range2)))

Computes the dot product of input ranges a and b. The two ranges must have the same length. If both ranges define length, the check is done once; otherwise, it is done at each iteration.

fnCommonType!(F1, F2) dotProduct(F1, F2)(in F1[] avector, in F2[] bvector)

Ditto

fnF dotProduct(F, uint N)(const ref scope F[N] a, const ref scope F[N] b) if (N <= 16)

ditto