public static double[] Phase(this Complex[] c)
{
if (c == null) throw new ArgumentNullException("c");
double[] phases = new double[c.Length];
for (int i = 0; i < c.Length; i++)
phases[i] = c[i].Phase;
return phases;
}