public KKLayoutAlgorithm(Distance<N> distance) { this.distance = (x, y) -> distance.getDistance(x, y); }
distance.getDistanceMap(v)); if (ignore_self_distances) { v_distances.remove(v);
Map<V, Number> v_distances = new HashMap<V, Number>(distance.getDistanceMap(v)); if (ignore_self_distances) v_distances.remove(v);
private WeightedChoice<N> getWeightedChoiceForDistance( N source, Graph<N> graph, Distance<N> distance) { Map<N, Double> nodeWeights = new HashMap<>(); Set<N> successors = graph.successors(source); for (N node : graph.nodes()) { // don't include the source or its successors if (!node.equals(source) && !successors.contains(node)) { nodeWeights.put( node, Math.pow(distance.getDistance(source, node).doubleValue(), -clusteringExponent)); } } Preconditions.checkState( nodeWeights.size() >= connectionCount, "number of possible targets (%s) must be greater than connection count (%s)", nodeWeights.size(), connectionCount); WeightedChoice<N> weightedChoice = new WeightedChoice<>(nodeWeights, random); return weightedChoice; } }
Map<N, Number> v_distances = new HashMap<N, Number>(distance.getDistanceMap(v)); if (ignore_self_distances) { v_distances.remove(v);
Number dist = d.getDistance(v, w); if (dist == null)
Map<V, Number> v_distances = new HashMap<V, Number>(distance.getDistanceMap(v)); if (ignore_self_distances) v_distances.remove(v);
Number dist = d.getDistance(v, w); if (dist == null) { if (!use_max) {
Number dist = d.getDistance(v, w); if (dist == null)
for (int j = i + 1; j < n; j++) { Number d_ij = distance .getDistance(vertices[i], vertices[j]); Number d_ji = distance .getDistance(vertices[j], vertices[i]); double dist = disconnected_length; if (d_ij != null)
Number d_ij = distance.getDistance(vertices[i], vertices[j]); Number d_ji = distance.getDistance(vertices[j], vertices[i]); double dist = diameter * disconnected_multiplier; if (d_ij != null)
Number d_ij = distance.getDistance(vertices[i], vertices[j]); Number d_ji = distance.getDistance(vertices[j], vertices[i]); double dist = diameter * disconnected_multiplier; if (d_ij != null)
@Override public void visit(LayoutModel<N> layoutModel) { super.visit(layoutModel); Graph<N> graph = layoutModel.getGraph(); if (graph != null) { Distance distance = new UnweightedShortestPath<N>(graph); this.distance = (x, y) -> distance.getDistance(x, y); } initialize(); }