private static void TestSamples_Distance(out Tuple <int, int, double>[] distance_Input, out Tuple <int, int, double>[] distance_Output, SketchSample[] sketches) { #region Get Distances var inputs = new List <Tuple <int, int, double> >(); var outputs = new List <Tuple <int, int, double> >(); for (int outer = 0; outer < sketches.Length - 1; outer++) { for (int inner = outer + 1; inner < sketches.Length; inner++) { double distance = Math3D.GetDistance(sketches[outer].NNInput, sketches[inner].NNInput); inputs.Add(Tuple.Create(outer, inner, distance)); distance = Math3D.GetDistance(sketches[outer].NNOutput, sketches[inner].NNOutput); outputs.Add(Tuple.Create(outer, inner, distance)); } } distance_Input = inputs.ToArray(); distance_Output = outputs.ToArray(); #endregion if (distance_Input.Length == 0) { return; } //#region Normalize //double inputMax = distance_Input.Max(o => o.Item3); //double outputMax = distance_Output.Max(o => o.Item3); //distance_Input = distance_Input. // Select(o => Tuple.Create(o.Item1, o.Item2, o.Item3 / inputMax)). // ToArray(); //distance_Output = distance_Output. // Select(o => Tuple.Create(o.Item1, o.Item2, o.Item3 / inputMax)). // ToArray(); //#endregion }