private static int GetInnerProdMax(double[] x)
{
double[] ipi = new double[x.Length - 1];
GetInnerProdIter(x, ipi);
double max_abs_ipi = Math.Abs(ipi[0]);
for (uint i = 0; i < ipi.Length; i++)
{
if (Math.Abs(ipi[i]) > max_abs_ipi)
{
max_abs_ipi = Math.Abs(ipi[i]);
}
}
List<int> indexVector = new List<int>();
for (int i = 0; i < ipi.Length; i++)
{
if (Math.Abs(ipi[i]) == max_abs_ipi)
{
indexVector.Add(i + 1);
}
}
int medIndex = CanvasCommon.Utilities.Median(indexVector);
return medIndex;
}