function dot( N, X, strideX, offsetX, Y, strideY, offsetY ) { // TODO: remove and use BLAS implementation
	var xi;
	var yi;
	var s;
	var i;

	xi = offsetX;
	yi = offsetY;
	s = 0.0;
	for ( i = 0; i < N; i++ ) {
		s += X[ xi ] * Y[ yi ];
		xi += strideX;
		yi += strideY;
	}
	return s;
}
Computes the dot product of two vectors.

@private
@param {NonNegativeInteger} N - number of elements
@param {NumericArray} X - strided array
@param {PositiveInteger} strideX - stride
@param {NonNegativeInteger} offsetX - index offset
@param {NumericArray} Y - strided array
@param {PositiveInteger} strideY - stride
@param {NonNegativeInteger} offsetY - index offset
@returns {number} dot product