/// <summary>
 /// Calculate the variance
 /// </summary>
 /// <param name="data"></param>
 /// <returns></returns>
 static public Complex   Variance(Complex[] data)
 {
     Debug.Assert(data != null);
     if (data.Length == 0)
     {
         throw new DivideByZeroException("length of data is zero");
     }
     return(ComplexStats.SumOfSquares(data) / data.Length - ComplexStats.Sum(data));
 }
 /// <summary>
 /// Calculate the standard deviation
 /// </summary>
 /// <param name="data"></param>
 /// <returns></returns>
 static public Complex   StdDev(Complex[] data)
 {
     Debug.Assert(data != null);
     if (data.Length == 0)
     {
         throw new DivideByZeroException("length of data is zero");
     }
     return(ComplexMath.Sqrt(ComplexStats.Variance(data)));
 }
 /// <summary>
 /// Calculate the mean (average)
 /// </summary>
 /// <param name="data"></param>
 /// <returns></returns>
 static public Complex           Mean(Complex[] data)
 {
     return(ComplexStats.Sum(data) / data.Length);
 }