- labels <- sprintf("%6s", 1:N)
- edge1 <- edge2 <- integer(2*N - 3)
-
- ans <- .C("me_b", as.double(X), N, labels, as.integer(nni),
- as.integer(spr), as.integer(tbr), edge1, edge2,
- double(2*N - 3), character(N), PACKAGE = "ape")
-
- labels <- substr(ans[[10]], 1, 6)
- LABS <- attr(X, "Labels")
- labels <- if (!is.null(LABS)) LABS[as.numeric(labels)]
- else gsub("^ ", "", labels)
- structure(list(edge = cbind(ans[[7]], ans[[8]]), edge.length = ans[[9]],
+ nedge <- 2L * N - 3L
+ ans <- .C("me_b", as.double(X), N, 1:N, as.integer(nni),
+ as.integer(spr), as.integer(tbr), integer(nedge),
+ integer(nedge), double(nedge),
+ DUP = FALSE, NAOK = TRUE, PACKAGE = "ape")
+ labels <- attr(X, "Labels")
+ if (is.null(labels)) labels <- as.character(1:N)
+ labels <- labels[ans[[3]]]
+ structure(list(edge = cbind(ans[[7]], ans[[8]]),
+ edge.length = ans[[9]],