public void UpdateSecondPass(ref VBuffer <Single> features, int[] indices) { int assigned = indices[0]; var distance = VectorUtils.Distance(ref _clusterCentroids[assigned], ref features); _distancesToCentroids[assigned] += distance; }
private Float SimplexDiameter() { Float maxDistance = Float.MinValue; var simplexVertices = _simplexVertices.ToArray(); for (int i = 0; i < simplexVertices.Length; i++) { var x = simplexVertices[i].Value; for (int j = i + 1; j < simplexVertices.Length; j++) { var y = simplexVertices[j].Value; var dist = VectorUtils.Distance(x, y); if (dist > maxDistance) { maxDistance = dist; } } } return(maxDistance); }