public double GetCovariance(TimeSeries series)
{
EnsureNotNull(series);
var m1 = GetMean();
var m2 = series.GetMean();
int count = 0;
double sum = 0;
for (int i = 0; i < Count; ++i)
{
var dateTime = GetDateTime(i);
if (series.Contains(dateTime))
{
sum += (this[i] - m1) * (series[dateTime, SearchOption.ExactFirst] - m2);
++count;
}
}
return count <= 1 ? 0 : sum / (count - 1);
}