public double GetEnergy()
{
double e = 0, v;
unsafe
{
if (format != SampleFormat.Format128BitComplex)
{
// Iterate over all samples and compute energy
float* src = (float*)this.ptrData.ToPointer();
for (int i = 0; i < this.Samples; i++, src++)
{
v = (*src);
e += v * v;
}
}
else
{
// Iterate over all samples and compute energy
Complex* src = (Complex*)this.Data.ToPointer();
for (int i = 0; i < this.Samples; i++, src++)
{
double m = (*src).Magnitude;
e += m * m;
}
}
}
return e;
}