/// <summary> /// Distance between two points /// </summary> public override double Dist(double[] p1, double[] p2) { GeneralUtils.CheckDimensions(p1, p2); var dim = p1.Length; double sum = 0.0F; for (int i = 0; i < dim; i++) { sum += Math.Pow(Math.Abs(p1[i] - p2[i]), P); } return(Math.Pow(sum, 1.0F / P)); }
/// <summary> /// Squared distance between two points /// </summary> public double Dist2(double[] p1, double[] p2) { GeneralUtils.CheckDimensions(p1, p2); var dim = p1.Length; double sum2 = 0.0F; for (int i = 0; i < dim; i++) { sum2 += (p1[i] - p2[i]) * (p1[i] - p2[i]); } return(sum2); }
/// <summary> /// Distance between two points /// </summary> public override double Dist(double[] p1, double[] p2) { GeneralUtils.CheckDimensions(p1, p2); var dim = p1.Length; var max = double.MinValue; for (int i = 0; i < dim; i++) { var abs = Math.Abs(p1[i] - p2[i]); if (abs > max) { max = abs; } } return(max); }
/// <summary> /// Distance between two points /// </summary> public override double Dist(double[] p1, double[] p2) { GeneralUtils.CheckDimensions(p1, p2); return(Math.Sqrt(Dist2(p1, p2))); }