public override double Function(double[] x, double[] y)
{
double prod = 1.0;
if (invariant)
{
for (int i = 0; i < x.Length; i++)
{
prod *= (h((x[i] - translation) / dilation)) *
(h((y[i] - translation) / dilation));
}
}
else
{
for (int i = 0; i < x.Length; i++)
prod *= h((x[i] - y[i]) / dilation);
}
return prod;
}