MCPcopy Create free account
hub / github.com/rambaut/figtree / dist

Method dist

src/figtree/treeviewer/ReRootedTree.java:662–680  ·  view source on GitHub ↗
(Tree tree, Node root, Node node, Map<HashPair<Node>, Double> dists)

Source from the content-addressed store, hash-verified

660 }
661
662 private static double dist(Tree tree, Node root, Node node, Map<HashPair<Node>, Double> dists) throws Graph.NoEdgeException {
663 HashPair<Node> p = new HashPair<Node>(root, node);
664 if (dists.containsKey(p)) {
665 return dists.get(p);
666 }
667
668 // assume positive branches
669 double maxDist = 0;
670 for (Node n : tree.getAdjacencies(node)) {
671 if (n != root) {
672 double d = dist(tree, node, n, dists);
673 maxDist = Math.max(maxDist, d);
674 }
675 }
676 double dist = tree.getEdgeLength(node, root) + maxDist;
677
678 dists.put(p, dist);
679 return dist;
680 }
681
682 // PRIVATE members
683

Callers 1

rootTreeAtCenterMethod · 0.95

Calls 4

getEdgeLengthMethod · 0.80
getMethod · 0.65
putMethod · 0.65
getAdjacenciesMethod · 0.45

Tested by

no test coverage detected