Yes, documentation on this subject is very sparse, and I think that I'll expand it in the near future.
Code:
double vdotproduct(
const double *v0,
ae_int_t stride0,
const double *v1,
ae_int_t stride1,
ae_int_t n);
It calculates dot product of two vectors, n elements each. First one is given by (v0,stride0) and is stored in {v0, v0+1*stride0, v0+2*stride0, ...}. Usual C++/C pointer arithmetics is used, i.e. stride is measured in 8-byte chunks (size of double), not in bytes. Second vector uses same storage. This function has highest performance when stride0==stride1==1.
BTW, recently you talked about covariance matrix estimation... I've finally decided to implement it in the ALGLIB 3.1 which will be released within two days. I recommend you to wait for the release because I'll implement very good algorithm which uses cache-efficient BLAS (performance measured in GFLOPs does not drop when matrix grows) and correctly handles tricky cases when some columns of matrix are actually constant, but because of numerical errors you still get nonzero correlation between them.